@overmap-ai/core 1.0.78-session-auth.2 → 1.0.78-session-auth-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/enums/access.d.ts +0 -5
- package/dist/enums/index.d.ts +0 -1
- package/dist/overmap-core.js +3921 -3712
- package/dist/overmap-core.umd.cjs +8 -8
- package/dist/sdk/services/AgentService.d.ts +1 -1
- package/dist/sdk/services/AssetAttachmentService.d.ts +1 -1
- package/dist/sdk/services/AssetProcedureAttachmentService.d.ts +1 -1
- package/dist/sdk/services/AssetProcedureFieldValuesAttachmentService.d.ts +1 -1
- package/dist/sdk/services/AssetProcedureFieldValuesService.d.ts +1 -1
- package/dist/sdk/services/AssetProcedureFieldsAttachmentService.d.ts +1 -1
- package/dist/sdk/services/AssetProcedureFieldsService.d.ts +1 -1
- package/dist/sdk/services/AssetProcedureInstanceService.d.ts +1 -1
- package/dist/sdk/services/AssetProcedureService.d.ts +1 -1
- package/dist/sdk/services/AssetProcedureStepFieldValuesAttachmentService.d.ts +1 -1
- package/dist/sdk/services/AssetProcedureStepFieldValuesService.d.ts +1 -1
- package/dist/sdk/services/AssetProcedureStepFieldsAttachmentService.d.ts +1 -1
- package/dist/sdk/services/AssetProcedureStepFieldsService.d.ts +1 -1
- package/dist/sdk/services/AssetProcedureStepService.d.ts +5 -6
- package/dist/sdk/services/AssetService.d.ts +2 -2
- package/dist/sdk/services/AssetStageCompletionService.d.ts +1 -1
- package/dist/sdk/services/AssetStageService.d.ts +5 -6
- package/dist/sdk/services/AssetTypeAttachmentService.d.ts +1 -1
- package/dist/sdk/services/AssetTypeFieldValuesAttachmentService.d.ts +1 -1
- package/dist/sdk/services/AssetTypeFieldValuesService.d.ts +1 -1
- package/dist/sdk/services/AssetTypeFieldsAttachmentService.d.ts +1 -1
- package/dist/sdk/services/AssetTypeFieldsService.d.ts +1 -1
- package/dist/sdk/services/AssetTypeService.d.ts +1 -1
- package/dist/sdk/services/BaseService.d.ts +1 -1
- package/dist/sdk/services/CategoryService.d.ts +2 -2
- package/dist/sdk/services/DocumentAttachmentService.d.ts +1 -1
- package/dist/sdk/services/DocumentService.d.ts +1 -1
- package/dist/sdk/services/EmailDomainsService.d.ts +1 -1
- package/dist/sdk/services/FileService.d.ts +1 -1
- package/dist/sdk/services/FormRevisionAttachmentService.d.ts +1 -1
- package/dist/sdk/services/FormRevisionService.d.ts +1 -1
- package/dist/sdk/services/FormService.d.ts +1 -1
- package/dist/sdk/services/FormSubmissionAttachmentService.d.ts +1 -1
- package/dist/sdk/services/FormSubmissionService.d.ts +1 -1
- package/dist/sdk/services/GeoImageService.d.ts +1 -1
- package/dist/sdk/services/IssueAssociationService.d.ts +1 -1
- package/dist/sdk/services/IssueAttachmentService.d.ts +1 -1
- package/dist/sdk/services/IssueCommentAttachmentService.d.ts +1 -1
- package/dist/sdk/services/IssueCommentService.d.ts +1 -1
- package/dist/sdk/services/IssueService.d.ts +1 -1
- package/dist/sdk/services/IssueTypeAttachmentService.d.ts +1 -1
- package/dist/sdk/services/IssueTypeFieldValuesAttachmentService.d.ts +1 -1
- package/dist/sdk/services/IssueTypeFieldValuesService.d.ts +1 -1
- package/dist/sdk/services/IssueTypeFieldsAttachmentService.d.ts +1 -1
- package/dist/sdk/services/IssueTypeFieldsService.d.ts +1 -1
- package/dist/sdk/services/IssueTypeService.d.ts +1 -1
- package/dist/sdk/services/IssueUpdateService.d.ts +2 -2
- package/dist/sdk/services/JWTAuthService.d.ts +1 -1
- package/dist/sdk/services/OrganizationAccessService.d.ts +5 -4
- package/dist/sdk/services/OrganizationService.d.ts +4 -4
- package/dist/sdk/services/ProjectAccessService.d.ts +5 -3
- package/dist/sdk/services/ProjectAttachmentService.d.ts +2 -2
- package/dist/sdk/services/ProjectFileService.d.ts +1 -4
- package/dist/sdk/services/ProjectService.d.ts +2 -8
- package/dist/sdk/services/TeamMembershipService.d.ts +10 -0
- package/dist/sdk/services/TeamService.d.ts +2 -5
- package/dist/sdk/services/UserService.d.ts +2 -2
- package/dist/sdk/services/index.d.ts +1 -1
- package/dist/store/constants.d.ts +3 -1
- package/dist/store/reducers.d.ts +3 -3
- package/dist/store/slices/agentsSlice.d.ts +21 -1
- package/dist/store/slices/assetProcedureFieldValuesAttachmentSlice.d.ts +1 -1
- package/dist/store/slices/assetProcedureFieldValuesSlice.d.ts +1 -1
- package/dist/store/slices/assetProcedureFieldsAttachmentSlice.d.ts +1 -1
- package/dist/store/slices/assetProcedureFieldsSlice.d.ts +1 -1
- package/dist/store/slices/assetProcedureInstanceSlice.d.ts +1 -1
- package/dist/store/slices/assetProcedureSlice.d.ts +2 -2
- package/dist/store/slices/assetProcedureStepFieldValuesAttachmentSlice.d.ts +1 -1
- package/dist/store/slices/assetProcedureStepFieldValuesSlice.d.ts +1 -1
- package/dist/store/slices/assetProcedureStepFieldsAttachmentSlice.d.ts +1 -1
- package/dist/store/slices/assetProcedureStepFieldsSlice.d.ts +2 -2
- package/dist/store/slices/assetProcedureStepSlice.d.ts +1 -1
- package/dist/store/slices/assetSlice.d.ts +1 -1
- package/dist/store/slices/assetStageCompletionSlice.d.ts +10 -2
- package/dist/store/slices/assetStageSlice.d.ts +1 -1
- package/dist/store/slices/assetTypeFieldValuesAttachmentSlice.d.ts +1 -1
- package/dist/store/slices/assetTypeFieldValuesSlice.d.ts +1 -1
- package/dist/store/slices/assetTypeFieldsAttachmentSlice.d.ts +1 -1
- package/dist/store/slices/assetTypeFieldsSlice.d.ts +1 -1
- package/dist/store/slices/assetTypeSlice.d.ts +2 -1
- package/dist/store/slices/categorySlice.d.ts +24 -4
- package/dist/store/slices/documentSlice.d.ts +1 -1
- package/dist/store/slices/emailDomainsSlice.d.ts +26 -2
- package/dist/store/slices/formRevisionSlice.d.ts +16 -4
- package/dist/store/slices/formSlice.d.ts +19 -6
- package/dist/store/slices/geoImageSlice.d.ts +1 -1
- package/dist/store/slices/index.d.ts +1 -1
- package/dist/store/slices/issueAssociationSlice.d.ts +1 -1
- package/dist/store/slices/issueCommentSlice.d.ts +13 -1
- package/dist/store/slices/issueSlice.d.ts +96 -1
- package/dist/store/slices/issueTypeFieldValuesAttachmentSlice.d.ts +1 -1
- package/dist/store/slices/issueTypeFieldValuesSlice.d.ts +1 -1
- package/dist/store/slices/issueTypeFieldsAttachmentSlice.d.ts +1 -1
- package/dist/store/slices/issueTypeFieldsSlice.d.ts +1 -1
- package/dist/store/slices/issueTypeSlice.d.ts +23 -3
- package/dist/store/slices/issueUpdateSlice.d.ts +15 -3
- package/dist/store/slices/organizationAccessSlice.d.ts +30 -6
- package/dist/store/slices/organizationSlice.d.ts +2 -8
- package/dist/store/slices/projectAccessSlice.d.ts +27 -6
- package/dist/store/slices/projectFileSlice.d.ts +1 -1
- package/dist/store/slices/projectSlice.d.ts +5 -8
- package/dist/store/slices/teamMembershipSlice.d.ts +49 -0
- package/dist/store/slices/teamSlice.d.ts +21 -6
- package/dist/store/slices/userSlice.d.ts +84 -5
- package/dist/typings/models/index.d.ts +0 -1
- package/dist/typings/models/organizations.d.ts +2 -3
- package/dist/typings/models/projects.d.ts +2 -5
- package/dist/typings/models/teams.d.ts +5 -2
- package/package.json +3 -8
- package/dist/enums/licenses.d.ts +0 -14
- package/dist/sdk/services/LicenseService.d.ts +0 -14
- package/dist/store/slices/licenseSlice.d.ts +0 -25
- package/dist/typings/models/license.d.ts +0 -13
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
(function(i,j){typeof exports=="object"&&typeof module<"u"?j(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("@redux-offline/redux-offline/lib/constants"),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","@redux-offline/redux-offline/lib/constants","@overmap-ai/forms","idb","jwt-decode","dependency-graph","@tiptap/core"],j):(i=typeof globalThis<"u"?globalThis:i||self,j(i["overmap-core"]={},null,i.toolkit,i.request,i.uuid,i.fileSaver,i.reduxOffline,i.offlineConfig,null,i.localforage,i.createMigration,i.constants,null,i.idb,i.jwtDecode,i.dependencyGraph))})(this,function(i,j,l,ke,Re,am,cm,ic,Rb,nm,rm,dm,Ob,um,om,lm){"use strict";var Tb=Object.defineProperty;var Ib=(i,j,l)=>j in i?Tb(i,j,{enumerable:!0,configurable:!0,writable:!0,value:l}):i[j]=l;var f=(i,j,l)=>Ib(i,typeof j!="symbol"?j+"":j,l);var im;const ac=Object.freeze([]),cc=Object.freeze({});var Bt=(t=>(t[t.GUEST=0]="GUEST",t[t.BASIC=2]="BASIC",t[t.ADMIN=4]="ADMIN",t))(Bt||{}),Gt=(t=>(t[t.GUEST=0]="GUEST",t[t.BASIC=2]="BASIC",t[t.ADMIN=4]="ADMIN",t))(Gt||{}),h=(t=>(t.GET="GET",t.POST="POST",t.PATCH="PATCH",t.PUT="PUT",t.DELETE="DELETE",t))(h||{}),nc=(t=>(t.Issue="issue",t.Asset="asset",t.AssetType="asset_type",t.Project="project",t.Document="document",t))(nc||{}),Lt=(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))(Lt||{}),Nt=(t=>(t[t.BACKLOG=0]="BACKLOG",t[t.SELECTED=2]="SELECTED",t[t.DONE=4]="DONE",t))(Nt||{}),v=(t=>(t.STATUS="status",t.PRIORITY="priority",t.CATEGORY="category",t.DESCRIPTION="description",t.TITLE="title",t.ASSIGNED_TO="assigned_to",t.DUE_DATE="due_date",t))(v||{}),rc=(t=>(t.COMPLETED="checkout.completed",t.CLOSED="checkout.closed",t))(rc||{}),dc=(t=>(t[t.PRO=0]="PRO",t))(dc||{}),uc=(t=>(t[t.ACTIVE=0]="ACTIVE",t[t.PAUSED=2]="PAUSED",t[t.CANCELLED=4]="CANCELLED",t[t.INACTIVE=6]="INACTIVE",t[t.PAST_DUE=8]="PAST_DUE",t))(uc||{});const hm=Nt.BACKLOG,mm=Lt.MEDIUM,oc=6e4;function F(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 pm(){return{initializeSelection:(m,d)=>{m.selection=Array.from(new Set(d.payload))},selectOne:(m,d)=>{new Set(m.selection).has(d.payload)||m.selection.push(d.payload)},selectMany:(m,d)=>{const o=new Set(m.selection);for(const p of d.payload)o.has(p)||o.add(p);m.selection=Array.from(o)},unselectOne:(m,d)=>{const o=new Set(m.selection);o.has(d.payload)&&(o.delete(d.payload),m.selection=Array.from(o))},unselectMany:(m,d)=>{const o=new Set(m.selection);for(const p of d.payload)o.has(p)&&o.delete(p);m.selection=Array.from(o)},toggleOne:(m,d)=>{const o=new Set(m.selection);o.has(d.payload)?o.delete(d.payload):o.add(d.payload),m.selection=Array.from(o)},toggleMany:(m,d)=>{const o=new Set(m.selection);for(const p of d.payload)o.has(p)?o.delete(p):o.add(p);m.selection=Array.from(o)},getInitialState:m=>({...m,selection:[]})}}const Ne="versioning",lc="RESET";im=Symbol.toStringTag;class hc{constructor(){f(this,im,"Promise");f(this,"_promise");f(this,"_resolve");f(this,"_reject");f(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 Am=t=>({type:"Point",coordinates:t}),ym=t=>({type:"MultiPoint",coordinates:t}),fm=(t,e)=>t[0]===e[0]&&t[1]===e[1];let Ht=!1;["true","1"].includes("".toLowerCase())&&(Ht=!0);function Sm(t,e){if(t===e)return!0;if(typeof t!=typeof e)return!1;const s=Object.keys(t),a=Object.keys(e),c=s.length;if(c!==a.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 Wt(t){const e={};return function(){const s=Array.prototype.slice.call(arguments);return s in e?(Ht&&console.debug(`Memoization debug: Using memorized return value for ${t.toString()}(`,s,")"),e[s]):(Ht&&console.debug(`Memoization debug: Cache miss! Memoizing ${t.toString()}(`,s,")"),e[s]=t.apply(this,s))}}function gm(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?ac:t,Oe=t=>Object.keys(t).length===0?cc:t,mc=Wt(t=>{if(!t)return"";const e=new Date(t),s=e.getFullYear()===Kt.getFullYear(),a={day:"numeric",month:"short"};return s||(a.year="numeric"),e.toLocaleDateString([],a)}),bm=new Intl.RelativeTimeFormat([],{style:"long",numeric:"auto"}),Pm=1e3*86400,Kt=new Date,Fm=t=>new Date(t).toDateString()===Kt.toDateString(),Tm=Wt((t,e,s)=>{const a=Math.round((new Date(t).getTime()-Kt.getTime())/Pm);return a<e||a>s?mc(t):bm.format(a,"days")});function Im(t){return new Uint8Array(t).reduce((s,a)=>s+a.toString(16).padStart(2,"0"),"")}const Yt=async(t,e)=>{e||(e=await ze(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 ze(t){return new Promise((e,s)=>{const a=new FileReader;a.onload=()=>{const c=a.result;if(!c){s(new Error("FileReader did not return a valid ArrayBuffer."));return}crypto.subtle.digest("SHA-1",c).then(n=>{const r=Im(n);e(r)})},a.readAsArrayBuffer(t)})}function Rm(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 pc(t,e){return new File([t],e,{type:t.type})}function Om(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 _m=async t=>{const e={};for(const s of t){const a=await ze(s);e[a]={sha1:a,extension:s.name.split(".").pop()||"",file_type:s.type,size:s.size}}return Object.values(e)},Ac=async t=>(await fetch(t)).blob(),vm=t=>new Promise((e,s)=>{const a=new FileReader;a.onloadend=()=>{var c;e(((c=a.result)==null?void 0:c.toString())||"")},a.readAsDataURL(t)});function wm(t){const e=new Blob([t]);am.saveAs(e,t.name)}const yc={};function Em(t,e,s,...a){const c=yc[t];let n=!1;c?c[e]||(c[e]=!0,n=!0):(yc[t]={[e]:!0},n=!0),n&&console[s](...a)}const fc=["created_at","updated_at","index","revision"];function T(t){return{...t,uuid:Re.v4()}}function Sc(t){const e={};for(const s of t)e[s.uuid]=s;return e}function qm(t,e=void 0,s=255){let a=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 a.length+c>s&&(a=a.slice(0,s-c)+(e||"")),a}function jm(t){return t.toLowerCase().replace(" ","-")}function Mm(t,e=!1){return t.normalize("NFKD").toLowerCase().replace(/[^\w\s-]/g,"").trim().replace(/[-\s]+/g,e?"_":"-")}function Vm(t,e){if(t.length<=e)return t;const s=t.slice(0,e-1);return s.slice(0,s.lastIndexOf(" "))+"…"}const S=t=>e=>s=>t(s,e);function gc(t,e,s){return s.findIndex(a=>a.uuid===t.uuid)===e}function km(t,e,s){return s.findIndex(a=>a.file_sha1===t.file_sha1)===e}const zm=/^.+@.+\..+$/;function _(t){const e={...t};for(const s of[...fc,"created_by"])s in e&&delete e[s];return e}const He=F(t=>t.uuid),bc=He.getInitialState({}),Jt=l.createSlice({name:"agents",initialState:bc,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,bc)),reducers:{initializeConversations:He.initialize,addConversation:He.addOne,setConversation:He.setOne,updateConversation:He.updateOne}}),{initializeConversations:Pc,addConversation:Fc,setConversation:Tc,updateConversation:Ic}=Jt.actions,Xt=t=>t.agentsReducer.instances,Cm=l.createSelector([Xt],t=>Object.values(t)),Dm=S(l.createSelector([Xt,(t,e)=>e],(t,e)=>t[e])),Rc=Jt.reducer,k=F(t=>t.uuid),Oc=k.getInitialState({}),Qt=l.createSlice({name:"assetAttachments",initialState:Oc,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Oc)),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:Zt,addAssetAttachment:Um,addAssetAttachments:xt,setAssetAttachment:_c,setAssetAttachments:$m,updateAssetAttachment:Bm,updateAssetAttachments:vc,deleteAssetAttachment:wc,deleteAssetAttachments:es}=Qt.actions,Ec=t=>t.assetAttachmentReducer.instances,qc=l.createSelector([Ec],t=>Object.values(t)),jc=t=>e=>e.assetAttachmentReducer.instances[t],Mc=S(l.createSelector([qc,(t,e)=>e],(t,e)=>g(t.filter(({asset:s})=>e===s)))),Vc=Qt.reducer,z=F(t=>t.uuid),kc=z.getInitialState({}),ts=l.createSlice({name:"assetProcedureAttachments",initialState:kc,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,kc)),reducers:{initializeAssetProcedureAttachments:z.initialize,addAssetProcedureAttachment:z.addOne,addAssetProcedureAttachments:z.addMany,setAssetProcedureAttachment:z.setOne,setAssetProcedureAttachments:z.setMany,updateAssetProcedureAttachment:z.updateOne,updateAssetProcedureAttachments:z.updateMany,deleteAssetProcedureAttachment:z.deleteOne,deleteAssetProcedureAttachments:z.deleteMany}}),{initializeAssetProcedureAttachments:zc,addAssetProcedureAttachment:Gm,addAssetProcedureAttachments:Cc,setAssetProcedureAttachment:Dc,setAssetProcedureAttachments:Lm,updateAssetProcedureAttachment:Nm,updateAssetProcedureAttachments:Uc,deleteAssetProcedureAttachment:$c,deleteAssetProcedureAttachments:Bc}=ts.actions,Gc=t=>t.assetProcedureAttachmentReducer.instances,Lc=l.createSelector([Gc],t=>Object.values(t)),Nc=t=>e=>e.assetProcedureAttachmentReducer.instances[t],Hm=S(l.createSelector([Lc,(t,e)=>e],(t,e)=>g(t.filter(({asset_procedure:s})=>e===s)))),Hc=ts.reducer,C=F(t=>t.uuid),Wc=C.getInitialState({}),ss=l.createSlice({name:"assetProcedureFieldsAttachments",initialState:Wc,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Wc)),reducers:{initializeAssetProcedureFieldsAttachments:C.initialize,addAssetProcedureFieldsAttachment:C.addOne,addAssetProcedureFieldsAttachments:C.addMany,setAssetProcedureFieldsAttachment:C.setOne,setAssetProcedureFieldsAttachments:C.setMany,updateAssetProcedureFieldsAttachment:C.updateOne,updateAssetProcedureFieldsAttachments:C.updateMany,deleteAssetProcedureFieldsAttachment:C.deleteOne,deleteAssetProcedureFieldsAttachments:C.deleteMany}}),{initializeAssetProcedureFieldsAttachments:Kc,addAssetProcedureFieldsAttachment:Wm,addAssetProcedureFieldsAttachments:Yc,setAssetProcedureFieldsAttachment:Km,setAssetProcedureFieldsAttachments:Ym,updateAssetProcedureFieldsAttachment:Jm,updateAssetProcedureFieldsAttachments:Jc,deleteAssetProcedureFieldsAttachment:Xm,deleteAssetProcedureFieldsAttachments:Xc}=ss.actions,Qc=t=>t.assetProcedureFieldsAttachmentReducer.instances,Zc=l.createSelector([Qc],t=>Object.values(t)),Qm=S(l.createSelector([Zc,(t,e)=>e],(t,e)=>g(t.filter(s=>s.fields_revision===e)))),Zm=t=>e=>e.assetProcedureFieldsAttachmentReducer.instances[t],xc=ss.reducer,D=F(t=>t.uuid),en=D.getInitialState({}),is=l.createSlice({name:"assetProcedureFields",initialState:en,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,en)),reducers:{initializeAssetProcedureFields:D.initialize,addAssetProcedureFields:D.addOne,addAssetProcedureFieldsMany:D.addMany,setAssetProcedureFields:D.setOne,setAssetProcedureFieldsMany:D.setMany,updateAssetProcedureFields:D.updateOne,updateAssetProcedureFieldsMany:D.updateMany,deleteAssetProcedureFields:D.deleteOne,deleteAssetProcedureFieldsMany:D.deleteMany}}),{initializeAssetProcedureFields:tn,addAssetProcedureFields:sn,addAssetProcedureFieldsMany:xm,setAssetProcedureFields:ep,setAssetProcedureFieldsMany:tp,updateAssetProcedureFields:an,updateAssetProcedureFieldsMany:sp,deleteAssetProcedureFields:cn,deleteAssetProcedureFieldsMany:ip}=is.actions,nn=t=>t.assetProcedureFieldsReducer.instances,as=l.createSelector([nn],t=>Object.values(t)),ap=S(l.createSelector([as,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_procedure===e)))),cp=S(l.createSelector([as,(t,e)=>e],(t,e)=>t.filter(s=>s.asset_procedure===e).sort((s,a)=>s.submitted_at>a.submitted_at?-1:1)[0])),np=t=>e=>e.assetProcedureFieldsReducer.instances[t],rn=is.reducer,U=F(t=>t.uuid),dn=U.getInitialState({}),cs=l.createSlice({name:"assetProcedureFieldValuesAttachments",initialState:dn,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,dn)),reducers:{initializeAssetProcedureFieldValuesAttachments:U.initialize,addAssetProcedureFieldValuesAttachment:U.addOne,addAssetProcedureFieldValuesAttachments:U.addMany,setAssetProcedureFieldValuesAttachment:U.setOne,setAssetProcedureFieldValuesAttachments:U.setMany,updateAssetProcedureFieldValuesAttachment:U.updateOne,updateAssetProcedureFieldValuesAttachments:U.updateMany,deleteAssetProcedureFieldValuesAttachment:U.deleteOne,deleteAssetProcedureFieldValuesAttachments:U.deleteMany}}),{initializeAssetProcedureFieldValuesAttachments:un,addAssetProcedureFieldValuesAttachment:rp,addAssetProcedureFieldValuesAttachments:dt,setAssetProcedureFieldValuesAttachment:dp,setAssetProcedureFieldValuesAttachments:up,updateAssetProcedureFieldValuesAttachment:op,updateAssetProcedureFieldValuesAttachments:on,deleteAssetProcedureFieldValuesAttachment:lp,deleteAssetProcedureFieldValuesAttachments:ut}=cs.actions,ns=t=>t.assetProcedureFieldValuesAttachmentReducer.instances,ln=l.createSelector([ns],t=>Object.values(t)),hp=t=>e=>e.assetProcedureFieldValuesAttachmentReducer.instances[t],hn=S(l.createSelector([ns,(t,e)=>e],(t,e)=>{const s=new Set(e);return g(Object.values(t).filter(a=>s.has(a.uuid)))})),mn=S(l.createSelector([ln,(t,e)=>e],(t,e)=>g(t.filter(s=>s.field_values===e)))),pn=cs.reducer,$=F(t=>t.uuid),An=$.getInitialState({}),rs=l.createSlice({name:"assetProcedureFieldValues",initialState:An,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,An)),reducers:{initializeAssetProcedureFieldValues:$.initialize,addAssetProcedureFieldValues:$.addOne,addAssetProcedureFieldValuesMany:$.addMany,setAssetProcedureFieldValues:$.setOne,setAssetProcedureFieldValuesMany:$.setMany,updateAssetProcedureFieldValues:$.updateOne,updateAssetProcedureFieldValuesMany:$.updateMany,deleteAssetProcedureFieldValues:$.deleteOne,deleteAssetProcedureFieldValuesMany:$.deleteMany}}),{initializeAssetProcedureFieldValues:yn,addAssetProcedureFieldValues:ds,addAssetProcedureFieldValuesMany:fn,setAssetProcedureFieldValues:mp,setAssetProcedureFieldValuesMany:pp,updateAssetProcedureFieldValues:We,updateAssetProcedureFieldValuesMany:Sn,deleteAssetProcedureFieldValues:us,deleteAssetProcedureFieldValuesMany:gn}=rs.actions,bn=t=>t.assetProcedureFieldValuesReducer.instances,os=l.createSelector([bn],t=>Object.values(t)),Ap=S(l.createSelector([os,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset===e)))),yp=S(l.createSelector([os,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_procedure_instance===e)))),ls=t=>e=>e.assetProcedureFieldValuesReducer.instances[t],Pn=rs.reducer,B=F(t=>t.uuid),Fn=B.getInitialState({}),hs=l.createSlice({name:"assetProcedureInstances",initialState:Fn,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Fn)),reducers:{initializeAssetProcedureInstances:B.initialize,addAssetProcedureInstance:B.addOne,addAssetProcedureInstances:B.addMany,setAssetProcedureInstance:B.setOne,setAssetProcedureInstances:B.setMany,updateAssetProcedureInstance:B.updateOne,updateAssetProcedureInstances:B.updateMany,deleteAssetProcedureInstance:B.deleteOne,deleteAssetProcedureInstances:B.deleteMany}}),{initializeAssetProcedureInstances:Tn,addAssetProcedureInstance:ms,addAssetProcedureInstances:In,updateAssetProcedureInstance:Ke,updateAssetProcedureInstances:fp,deleteAssetProcedureInstance:ps,deleteAssetProcedureInstances:Rn,setAssetProcedureInstance:Sp,setAssetProcedureInstances:gp}=hs.actions,As=t=>t.assetProcedureInstanceReducer.instances,ys=l.createSelector([As],t=>Object.values(t)),On=S(l.createSelector([ys,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_procedure===e)))),bp=S(l.createSelector([ys,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_type===e)))),fs=t=>e=>e.assetProcedureInstanceReducer.instances[t],Pp=S(l.createSelector([As,(t,e)=>e],(t,e)=>{const s=[];for(const a of e){const c=t[a];c&&s.push(c)}return g(s)})),_n=hs.reducer,G=F(t=>t.uuid),vn=G.getInitialState({}),Ss=l.createSlice({name:"assetProcedures",initialState:vn,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,vn)),reducers:{initializeAssetProcedures:G.initialize,addAssetProcedure:G.addOne,addAssetProcedures:G.addMany,setAssetProcedure:G.setOne,setAssetProcedures:G.setMany,updateAssetProcedure:G.updateOne,updateAssetProcedures:G.updateMany,deleteAssetProcedure:G.deleteOne,deleteAssetProcedures:G.deleteMany}}),{initializeAssetProcedures:wn,addAssetProcedure:gs,addAssetProcedures:Fp,updateAssetProcedure:Ye,updateAssetProcedures:Tp,deleteAssetProcedure:bs,deleteAssetProcedures:Ip,setAssetProcedure:Rp,setAssetProcedures:Op}=Ss.actions,Ps=t=>t.assetProcedureReducer.instances,En=l.createSelector([Ps],t=>Object.values(t)),_p=S(l.createSelector([En,(t,e)=>e],(t,e)=>g(t.filter(s=>s.organization===e)))),Fs=t=>e=>e.assetProcedureReducer.instances[t],vp=S(l.createSelector([Ps,(t,e)=>e],(t,e)=>{const s=[];for(const a of e){const c=t[a];c&&s.push(c)}return g(s)})),qn=Ss.reducer,L=F(t=>t.uuid),jn=L.getInitialState({}),Ts=l.createSlice({name:"assetProcedureStepFieldsAttachments",initialState:jn,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,jn)),reducers:{initializeAssetProcedureStepFieldsAttachments:L.initialize,addAssetProcedureStepFieldsAttachment:L.addOne,addAssetProcedureStepFieldsAttachments:L.addMany,setAssetProcedureStepFieldsAttachment:L.setOne,setAssetProcedureStepFieldsAttachments:L.setMany,updateAssetProcedureStepFieldsAttachment:L.updateOne,updateAssetProcedureStepFieldsAttachments:L.updateMany,deleteAssetProcedureStepFieldsAttachment:L.deleteOne,deleteAssetProcedureStepFieldsAttachments:L.deleteMany}}),{initializeAssetProcedureStepFieldsAttachments:Mn,addAssetProcedureStepFieldsAttachment:wp,addAssetProcedureStepFieldsAttachments:Vn,setAssetProcedureStepFieldsAttachment:Ep,setAssetProcedureStepFieldsAttachments:qp,updateAssetProcedureStepFieldsAttachment:jp,updateAssetProcedureStepFieldsAttachments:kn,deleteAssetProcedureStepFieldsAttachment:Mp,deleteAssetProcedureStepFieldsAttachments:zn}=Ts.actions,Cn=t=>t.assetProcedureStepFieldsAttachmentReducer.instances,Dn=l.createSelector([Cn],t=>Object.values(t)),Vp=S(l.createSelector([Dn,(t,e)=>e],(t,e)=>g(t.filter(s=>s.fields_revision===e)))),kp=t=>e=>e.assetProcedureStepFieldsAttachmentReducer.instances[t],Un=Ts.reducer,N=F(t=>t.uuid),$n=N.getInitialState({}),Is=l.createSlice({name:"assetProcedureStepFields",initialState:$n,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,$n)),reducers:{initializeAssetProcedureStepFields:N.initialize,addAssetProcedureStepFields:N.addOne,addAssetProcedureStepFieldsMany:N.addMany,setAssetProcedureStepFields:N.setOne,setAssetProcedureStepFieldsMany:N.setMany,updateAssetProcedureStepFields:N.updateOne,updateAssetProcedureStepFieldsMany:N.updateMany,deleteAssetProcedureStepFields:N.deleteOne,deleteAssetProcedureStepFieldsMany:N.deleteMany}}),{initializeAssetProcedureStepFields:Bn,addAssetProcedureStepFields:Rs,addAssetProcedureStepFieldsMany:zp,setAssetProcedureStepFields:Cp,setAssetProcedureStepFieldsMany:Dp,updateAssetProcedureStepFields:Je,updateAssetProcedureStepFieldsMany:Up,deleteAssetProcedureStepFields:Os,deleteAssetProcedureStepFieldsMany:$p}=Is.actions,_s=t=>t.assetProcedureStepFieldsReducer.instances,vs=l.createSelector([_s],t=>Object.values(t)),Bp=S(l.createSelector([vs,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_procedure_step===e)))),Gp=S(l.createSelector([vs,(t,e)=>e],(t,e)=>t.filter(s=>s.asset_procedure_step===e).sort((s,a)=>s.submitted_at>a.submitted_at?-1:1)[0])),Lp=l.createSelector([_s],t=>{const e={};for(const s of Object.values(t)){const a=e[s.asset_procedure_step];(!a||a.submitted_at<s.submitted_at)&&(e[s.asset_procedure_step]=s)}return e}),Np=t=>e=>e.assetProcedureStepFieldsReducer.instances[t],Gn=Is.reducer,H=F(t=>t.uuid),Ln=H.getInitialState({}),ws=l.createSlice({name:"assetProcedureStepFieldValuesAttachments",initialState:Ln,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Ln)),reducers:{initializeAssetProcedureStepFieldValuesAttachments:H.initialize,addAssetProcedureStepFieldValuesAttachment:H.addOne,addAssetProcedureStepFieldValuesAttachments:H.addMany,setAssetProcedureStepFieldValuesAttachment:H.setOne,setAssetProcedureStepFieldValuesAttachments:H.setMany,updateAssetProcedureStepFieldValuesAttachment:H.updateOne,updateAssetProcedureStepFieldValuesAttachments:H.updateMany,deleteAssetProcedureStepFieldValuesAttachment:H.deleteOne,deleteAssetProcedureStepFieldValuesAttachments:H.deleteMany}}),{initializeAssetProcedureStepFieldValuesAttachments:Nn,addAssetProcedureStepFieldValuesAttachment:Hp,addAssetProcedureStepFieldValuesAttachments:ot,setAssetProcedureStepFieldValuesAttachment:Wp,setAssetProcedureStepFieldValuesAttachments:Kp,updateAssetProcedureStepFieldValuesAttachment:Yp,updateAssetProcedureStepFieldValuesAttachments:Hn,deleteAssetProcedureStepFieldValuesAttachment:Jp,deleteAssetProcedureStepFieldValuesAttachments:lt}=ws.actions,Es=t=>t.assetProcedureStepFieldValuesAttachmentReducer.instances,Wn=l.createSelector([Es],t=>Object.values(t)),Xp=t=>e=>e.assetProcedureStepFieldValuesAttachmentReducer.instances[t],Kn=S(l.createSelector([Es,(t,e)=>e],(t,e)=>{const s=new Set(e);return g(Object.values(t).filter(a=>s.has(a.uuid)))})),Yn=S(l.createSelector([Wn,(t,e)=>e],(t,e)=>g(t.filter(s=>s.field_values===e)))),Jn=ws.reducer,W=F(t=>t.uuid),Xn=W.getInitialState({}),qs=l.createSlice({name:"assetProcedureStepFieldValues",initialState:Xn,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Xn)),reducers:{initializeAssetProcedureStepFieldValues:W.initialize,addAssetProcedureStepFieldValues:W.addOne,addAssetProcedureStepFieldValuesMany:W.addMany,setAssetProcedureStepFieldValues:W.setOne,setAssetProcedureStepFieldValuesMany:W.setMany,updateAssetProcedureStepFieldValues:W.updateOne,updateAssetProcedureStepFieldValuesMany:W.updateMany,deleteAssetProcedureStepFieldValues:W.deleteOne,deleteAssetProcedureStepFieldValuesMany:W.deleteMany}}),{initializeAssetProcedureStepFieldValues:Qn,addAssetProcedureStepFieldValues:js,addAssetProcedureStepFieldValuesMany:Zn,setAssetProcedureStepFieldValues:Qp,setAssetProcedureStepFieldValuesMany:Zp,updateAssetProcedureStepFieldValues:Xe,updateAssetProcedureStepFieldValuesMany:xn,deleteAssetProcedureStepFieldValues:Ms,deleteAssetProcedureStepFieldValuesMany:er}=qs.actions,tr=t=>t.assetProcedureStepFieldValuesReducer.instances,ht=l.createSelector([tr],t=>Object.values(t)),xp=S(l.createSelector([ht,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset===e)))),eA=S(l.createSelector([ht,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_procedure_instance===e)))),tA=S(l.createSelector([ht,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_procedure_step===e)))),Vs=t=>e=>e.assetProcedureStepFieldValuesReducer.instances[t],sr=qs.reducer,K=F(t=>t.uuid),ir=K.getInitialState({}),ks=l.createSlice({name:"assetProcedureSteps",initialState:ir,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,ir)),reducers:{initializeAssetProcedureSteps:K.initialize,setAssetProcedureStep:K.setOne,setAssetProcedureSteps:K.setMany,addAssetProcedureStep:K.addOne,addAssetProcedureSteps:K.addMany,updateAssetProcedureStep:K.updateOne,updateAssetProcedureSteps:K.updateMany,deleteAssetProcedureStep:K.deleteOne,deleteAssetProcedureSteps:K.deleteMany}}),{initializeAssetProcedureSteps:ar,setAssetProcedureStep:cr,setAssetProcedureSteps:sA,addAssetProcedureStep:iA,addAssetProcedureSteps:zs,updateAssetProcedureStep:Cs,updateAssetProcedureSteps:mt,deleteAssetProcedureStep:aA,deleteAssetProcedureSteps:Ds}=ks.actions,nr=ks.reducer,pt=t=>t.assetProcedureStepReducer.instances,rr=t=>e=>e.assetProcedureStepReducer.instances[t],dr=l.createSelector([pt],t=>Object.values(t)),cA=S(l.createSelector([pt,(t,e)=>e],(t,e)=>{const s={};for(const[a,c]of Object.entries(t))c.asset_procedure===e&&(s[a]=c);return Oe(s)})),nA=S(l.createSelector([dr,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_procedure===e)))),Us=S(l.createSelector([pt,(t,e)=>e],(t,e)=>{const s=[];for(const a of e){const c=t[a];c?s.push(c):console.warn("selectAssetProcedureStepsByIds: No step exists with the id",a)}return g(s)})),Y=F(t=>t.uuid),ur=Y.getInitialState({}),$s=l.createSlice({name:"assets",initialState:ur,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,ur)),reducers:{initializeAssets:Y.initialize,addAsset:Y.addOne,addAssets:Y.addMany,setAsset:Y.setOne,setAssets:Y.setMany,updateAsset:Y.updateOne,updateAssets:Y.updateMany,deleteAsset:Y.deleteOne,deleteAssets:Y.deleteMany}}),{initializeAssets:or,addAsset:Bs,addAssets:At,updateAsset:Qe,updateAssets:rA,deleteAsset:Gs,deleteAssets:Ls,setAsset:dA,setAssets:uA}=$s.actions,Ns=t=>t.assetReducer.instances,lr=l.createSelector([Ns],t=>g(Object.values(t))),Hs=S(l.createSelector([lr,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_type===e)))),Ws=t=>e=>e.assetReducer.instances[t],hr=S(l.createSelector([Ns,(t,e)=>e],(t,e)=>{const s=[];for(const a of e){const c=t[a];c&&s.push(c)}return g(s)})),oA=t=>e=>Hs(t)(e).length,mr=$s.reducer,Fe=F(t=>t.uuid),pr=Fe.getInitialState({}),Ks=l.createSlice({name:"assetStageCompletions",initialState:pr,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,pr)),reducers:{initializeAssetStageCompletions:Fe.initialize,addAssetStageCompletion:Fe.addOne,addAssetStageCompletions:Fe.addMany,updateAssetStageCompletion:Fe.updateOne,updateAssetStageCompletions:Fe.updateMany,deleteAssetStageCompletion:Fe.deleteOne,deleteAssetStageCompletions:Fe.deleteMany}}),{initializeAssetStageCompletions:Ar,addAssetStageCompletion:Ys,addAssetStageCompletions:Js,updateAssetStageCompletion:yr,updateAssetStageCompletions:fr,deleteAssetStageCompletion:Xs,deleteAssetStageCompletions:Qs}=Ks.actions,Sr=Ks.reducer,Zs=t=>t.assetStageCompletionReducer.instances,lA=l.createSelector([Zs],t=>Object.values(t)),gr=t=>e=>e.assetStageCompletionReducer.instances[t],br=S(l.createSelector([Zs,(t,e)=>e],(t,e)=>{const s=new Set(e);return g(Object.values(t).filter(a=>s.has(a.uuid)))})),J=F(t=>t.uuid),Pr=J.getInitialState({}),xs=l.createSlice({name:"assetStages",initialState:Pr,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Pr)),reducers:{initializeAssetStages:J.initialize,setAssetStage:J.setOne,setAssetStages:J.setMany,addAssetStage:J.addOne,addAssetStages:J.addMany,updateAssetStage:J.updateOne,updateAssetStages:J.updateMany,deleteAssetStage:J.deleteOne,deleteAssetStages:J.deleteMany}}),{initializeAssetStages:Fr,setAssetStage:Tr,setAssetStages:hA,addAssetStage:mA,addAssetStages:ei,updateAssetStage:ti,updateAssetStages:yt,deleteAssetStage:pA,deleteAssetStages:si}=xs.actions,Ir=xs.reducer,ft=t=>t.assetStageReducer.instances,Rr=t=>e=>e.assetStageReducer.instances[t],Or=l.createSelector([ft],t=>Object.values(t)),AA=S(l.createSelector([ft,(t,e)=>e],(t,e)=>{const s={};for(const[a,c]of Object.entries(t))c.asset_procedure===e&&(s[a]=c);return Oe(s)})),yA=S(l.createSelector([Or,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_procedure===e)))),ii=S(l.createSelector([ft,(t,e)=>e],(t,e)=>{const s=[];for(const a of e){const c=t[a];c?s.push(c):console.warn("selectStagesFromStageIds: No stage exists with the id",a)}return g(s)})),X=F(t=>t.uuid),_r=X.getInitialState({}),ai=l.createSlice({name:"assetTypeAttachments",initialState:_r,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,_r)),reducers:{initializeAssetTypeAttachments:X.initialize,addAssetTypeAttachment:X.addOne,addAssetTypeAttachments:X.addMany,setAssetTypeAttachment:X.setOne,setAssetTypeAttachments:X.setMany,updateAssetTypeAttachment:X.updateOne,updateAssetTypeAttachments:X.updateMany,deleteAssetTypeAttachment:X.deleteOne,deleteAssetTypeAttachments:X.deleteMany}}),{initializeAssetTypeAttachments:vr,addAssetTypeAttachment:fA,addAssetTypeAttachments:ci,setAssetTypeAttachment:wr,setAssetTypeAttachments:SA,updateAssetTypeAttachment:gA,updateAssetTypeAttachments:Er,deleteAssetTypeAttachment:qr,deleteAssetTypeAttachments:ni}=ai.actions,jr=t=>t.assetTypeAttachmentReducer.instances,Mr=l.createSelector([jr],t=>Object.values(t)),Vr=t=>e=>e.assetTypeAttachmentReducer.instances[t],kr=S(l.createSelector([Mr,(t,e)=>e],(t,e)=>g(t.filter(({asset_type:s})=>e===s)))),zr=ai.reducer,Q=F(t=>t.uuid),Cr=Q.getInitialState({}),ri=l.createSlice({name:"assetTypeFieldsAttachments",initialState:Cr,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Cr)),reducers:{initializeAssetTypeFieldsAttachments:Q.initialize,addAssetTypeFieldsAttachment:Q.addOne,addAssetTypeFieldsAttachments:Q.addMany,setAssetTypeFieldsAttachment:Q.setOne,setAssetTypeFieldsAttachments:Q.setMany,updateAssetTypeFieldsAttachment:Q.updateOne,updateAssetTypeFieldsAttachments:Q.updateMany,deleteAssetTypeFieldsAttachment:Q.deleteOne,deleteAssetTypeFieldsAttachments:Q.deleteMany}}),{initializeAssetTypeFieldsAttachments:Dr,addAssetTypeFieldsAttachment:bA,addAssetTypeFieldsAttachments:Ur,setAssetTypeFieldsAttachment:PA,setAssetTypeFieldsAttachments:FA,updateAssetTypeFieldsAttachment:TA,updateAssetTypeFieldsAttachments:$r,deleteAssetTypeFieldsAttachment:IA,deleteAssetTypeFieldsAttachments:Br}=ri.actions,Gr=t=>t.assetTypeFieldsAttachmentReducer.instances,Lr=l.createSelector([Gr],t=>Object.values(t)),RA=S(l.createSelector([Lr,(t,e)=>e],(t,e)=>g(t.filter(s=>s.fields_revision===e)))),OA=t=>e=>e.assetTypeFieldsAttachmentReducer.instances[t],Nr=ri.reducer,Z=F(t=>t.uuid),Hr=Z.getInitialState({}),di=l.createSlice({name:"assetTypeFields",initialState:Hr,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Hr)),reducers:{initializeAssetTypeFields:Z.initialize,addAssetTypeFields:Z.addOne,addAssetTypeFieldsMany:Z.addMany,setAssetTypeFields:Z.setOne,setAssetTypeFieldsMany:Z.setMany,updateAssetTypeFields:Z.updateOne,updateAssetTypeFieldsMany:Z.updateMany,deleteAssetTypeFields:Z.deleteOne,deleteAssetTypeFieldsMany:Z.deleteMany}}),{initializeAssetTypeFields:Wr,addAssetTypeFields:Kr,addAssetTypeFieldsMany:_A,setAssetTypeFields:vA,setAssetTypeFieldsMany:wA,updateAssetTypeFields:Yr,updateAssetTypeFieldsMany:EA,deleteAssetTypeFields:Jr,deleteAssetTypeFieldsMany:qA}=di.actions,Xr=t=>t.assetTypeFieldsReducer.instances,St=l.createSelector([Xr],t=>Object.values(t)),jA=S(l.createSelector([St,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_type===e)))),MA=S(l.createSelector([St,(t,e)=>e],(t,e)=>t.filter(s=>s.asset_type===e).sort((s,a)=>s.submitted_at>a.submitted_at?-1:1)[0])),VA=t=>e=>e.assetTypeFieldsReducer.instances[t],Qr=di.reducer,x=F(t=>t.uuid),Zr=x.getInitialState({}),ui=l.createSlice({name:"assetTypeFieldValuesAttachments",initialState:Zr,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Zr)),reducers:{initializeAssetTypeFieldValuesAttachments:x.initialize,addAssetTypeFieldValuesAttachment:x.addOne,addAssetTypeFieldValuesAttachments:x.addMany,setAssetTypeFieldValuesAttachment:x.setOne,setAssetTypeFieldValuesAttachments:x.setMany,updateAssetTypeFieldValuesAttachment:x.updateOne,updateAssetTypeFieldValuesAttachments:x.updateMany,deleteAssetTypeFieldValuesAttachment:x.deleteOne,deleteAssetTypeFieldValuesAttachments:x.deleteMany}}),{initializeAssetTypeFieldValuesAttachments:xr,addAssetTypeFieldValuesAttachment:kA,addAssetTypeFieldValuesAttachments:gt,setAssetTypeFieldValuesAttachment:zA,setAssetTypeFieldValuesAttachments:CA,updateAssetTypeFieldValuesAttachment:DA,updateAssetTypeFieldValuesAttachments:ed,deleteAssetTypeFieldValuesAttachment:UA,deleteAssetTypeFieldValuesAttachments:bt}=ui.actions,oi=t=>t.assetTypeFieldValuesAttachmentReducer.instances,td=l.createSelector([oi],t=>Object.values(t)),$A=t=>e=>e.assetTypeFieldValuesAttachmentReducer.instances[t],sd=S(l.createSelector([oi,(t,e)=>e],(t,e)=>{const s=new Set(e);return g(Object.values(t).filter(a=>s.has(a.uuid)))})),id=S(l.createSelector([td,(t,e)=>e],(t,e)=>g(t.filter(s=>s.field_values===e)))),ad=ui.reducer,ee=F(t=>t.uuid),cd=ee.getInitialState({}),li=l.createSlice({name:"assetTypeFieldValues",initialState:cd,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,cd)),reducers:{initializeAssetTypeFieldValues:ee.initialize,addAssetTypeFieldValues:ee.addOne,addAssetTypeFieldValuesMany:ee.addMany,setAssetTypeFieldValues:ee.setOne,setAssetTypeFieldValuesMany:ee.setMany,updateAssetTypeFieldValues:ee.updateOne,updateAssetTypeFieldValuesMany:ee.updateMany,deleteAssetTypeFieldValues:ee.deleteOne,deleteAssetTypeFieldValuesMany:ee.deleteMany}}),{initializeAssetTypeFieldValues:nd,addAssetTypeFieldValues:hi,addAssetTypeFieldValuesMany:rd,setAssetTypeFieldValues:BA,setAssetTypeFieldValuesMany:GA,updateAssetTypeFieldValues:Ze,updateAssetTypeFieldValuesMany:dd,deleteAssetTypeFieldValues:mi,deleteAssetTypeFieldValuesMany:ud}=li.actions,od=t=>t.assetTypeFieldValuesReducer.instances,pi=l.createSelector([od],t=>Object.values(t)),LA=S(l.createSelector([pi,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset===e)))),NA=S(l.createSelector([St,pi,(t,e)=>e],(t,e,s)=>{const a=new Set(t.filter(c=>c.asset_type===s).map(c=>c.uuid));return g(e.filter(c=>a.has(c.fields_revision)))})),Ai=t=>e=>e.assetTypeFieldValuesReducer.instances[t],ld=li.reducer,te=F(t=>t.uuid),hd=te.getInitialState({}),yi=l.createSlice({name:"assetTypes",initialState:hd,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,hd)),reducers:{initializeAssetTypes:te.initialize,setAssetType:te.setOne,setAssetTypes:te.setMany,addAssetType:te.addOne,addAssetTypes:te.addMany,updateAssetType:te.updateOne,updateAssetTypes:te.updateMany,deleteAssetType:te.deleteOne,deleteAssetTypes:te.deleteMany}}),{initializeAssetTypes:md,setAssetType:HA,setAssetTypes:WA,addAssetType:fi,addAssetTypes:KA,updateAssetType:xe,updateAssetTypes:YA,deleteAssetType:Si,deleteAssetTypes:JA}=yi.actions,gi=t=>t.assetTypeReducer.instances,XA=l.createSelector([gi],t=>Object.values(t)),bi=t=>e=>e.assetTypeReducer.instances[t],QA=S(l.createSelector([gi,(t,e)=>e],(t,e)=>{const s=[];for(const a of e){const c=t[a];c?s.push(c):console.warn("selectAssetTypesByIds: No assetType exists with the id",a)}return g(s)})),pd=yi.reducer,Ad={accessToken:"",refreshToken:"",isLoggedIn:!1},Pt=l.createSlice({name:"auth",initialState:Ad,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Ad)),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||Pt.caseReducers.clearTokens(t),t.isLoggedIn=e.payload}}}),{setTokens:ZA,clearTokens:xA,setLoggedIn:yd}=Pt.actions,ey=t=>t.authReducer.accessToken,ty=t=>t.authReducer.isLoggedIn,fd=Pt.reducer,et=F(t=>t.uuid),Sd=et.getInitialState({}),Pi=l.createSlice({name:"categories",initialState:Sd,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Sd)),reducers:{initializeCategories:et.initialize,addCategory:et.addOne,updateCategory:et.updateOne,deleteCategory:et.deleteOne}}),{initializeCategories:gd,addCategory:Fi,updateCategory:bd,deleteCategory:Pd}=Pi.actions,Ti=t=>t.categoryReducer.instances,sy=l.createSelector([Ti],t=>Object.values(t)),Ii=t=>e=>e.categoryReducer.instances[t],iy=S(l.createSelector([Ti,(t,e)=>e],(t,e)=>{const s=[];for(const a of e){const c=t[a];c?s.push(c):console.warn("selectCategoryByIds: No category exists with the id",a)}return g(s)})),ay=t=>e=>Object.values(e.issueReducer.instances).filter(s=>s.category===t).length,Fd=Pi.reducer,se=F(t=>t.uuid),Td=se.getInitialState({}),Ri=l.createSlice({name:"documentAttachments",initialState:Td,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Td)),reducers:{initializeDocumentAttachments:se.initialize,addDocumentAttachment:se.addOne,addDocumentAttachments:se.addMany,setDocumentAttachment:se.setOne,setDocumentAttachments:se.setMany,updateDocumentAttachment:se.updateOne,updateDocumentAttachments:se.updateMany,deleteDocumentAttachment:se.deleteOne,deleteDocumentAttachments:se.deleteMany}}),{initializeDocumentAttachments:Id,addDocumentAttachment:cy,addDocumentAttachments:Rd,setDocumentAttachment:Od,setDocumentAttachments:ny,updateDocumentAttachment:ry,updateDocumentAttachments:_d,deleteDocumentAttachment:vd,deleteDocumentAttachments:wd}=Ri.actions,Ed=t=>t.documentAttachmentReducer.instances,qd=l.createSelector([Ed],t=>Object.values(t)),jd=t=>e=>e.documentAttachmentReducer.instances[t],dy=S(l.createSelector([qd,(t,e)=>e],(t,e)=>g(t.filter(({document:s})=>e===s)))),Md=Ri.reducer,Vd={documents:{}},Oi=l.createSlice({name:"documents",initialState:Vd,extraReducers:t=>t.addCase("RESET",e=>{Object.assign(e,Vd)}),reducers:{setDocuments:(t,e)=>{if(e.payload.filter(gc).length!==e.payload.length)throw new Error("Tried to use setIssues reducer with duplicate ID's");t.documents=Sc(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 a=t.documents[s.parent_document];t.documents[s.parent_document]={...a,children_documents:[...a.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 a=t.documents[s.uuid];if(s.organization!==void 0&&s.organization!==a.organization)throw new Error("organization cannot be updated");if(s.project!==void 0&&s.project!==a.project)throw new Error("project cannot be updated");t.documents[s.uuid]={...a,...s}}},moveDocument:(t,e)=>{const{documentId:s,targetDocumentId:a,position:c}=e.payload;if(!(s in t.documents))throw new Error(`attempting to move a document with uuid ${s} which doesn't exist in state.documents`);const n=t.documents[s];if(n.parent_document&&t.documents[n.parent_document]){const{children_documents:r}=t.documents[n.parent_document];t.documents[n.parent_document].children_documents.splice(r.indexOf(n.uuid),1)}if(a){const r=t.documents[a],u=r!=null&&r.parent_document?t.documents[r.parent_document]:null;switch(c){case"left":if(!u)throw new Error("attempting to move a document to the left of a document with no parent_document");t.documents[r.parent_document].children_documents.splice(u.children_documents.indexOf(r.uuid),0,n.uuid),t.documents[s].parent_document=u.uuid;break;case"right":if(!u)throw new Error("attempting to move a document to the left of a document with no parent_document");t.documents[r.parent_document].children_documents.splice(u.children_documents.indexOf(r.uuid)+1,0,n.uuid),t.documents[s].parent_document=u.uuid;break;case"left-child":if(!r)throw new Error("attempting to move a document to the left-child of a document that doesn't exist");t.documents[a].children_documents.unshift(n.uuid),t.documents[s].parent_document=r.uuid;break;case"right-child":if(!r)throw new Error("attempting to move a document to the left-child of a document that doesn't exist");t.documents[a].children_documents.push(n.uuid),t.documents[s].parent_document=r.uuid}}else t.documents[s].parent_document=null},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 a=t.documents[s];if(a.parent_document&&t.documents[a.parent_document]){const c=t.documents[a.parent_document];t.documents[a.parent_document]={...c,children_documents:c.children_documents.filter(n=>n!==a.uuid)}}delete t.documents[s]}}}}),{setDocuments:kd,addDocuments:zd,updateDocuments:Te,moveDocument:Cd,removeDocuments:_i}=Oi.actions,Ce=t=>t.documentsReducer.documents,Dd=l.createSelector([Ce],t=>Object.values(t)),Ud=t=>e=>e.documentsReducer.documents[t],uy=S(l.createSelector([Ce,(t,e)=>e],(t,e)=>{const s=[];for(const a of e){const c=t[a];c?s.push(c):console.warn("selectDocumentByIds: No document exists with the id",a)}return g(s)})),oy=S(l.createSelector([Ce,(t,e)=>e],(t,e)=>{const s=[],a=t[e];if(!a||!a.parent_document)return s;let c=t[a.parent_document];for(;c;)s.push(c.uuid),c=t[c.parent_document??""];return g(s)})),ly=l.createSelector([Dd],t=>g(t.filter(e=>!e.parent_document))),$d=Oi.reducer,Ft=F(t=>t.uuid),hy=Ft.getInitialState({}),vi=l.createSlice({name:"emailDomains",initialState:hy,reducers:{initializeEmailDomains:Ft.initialize,addEmailDomain:Ft.addOne,deleteEmailDomain:Ft.deleteOne}}),{initializeEmailDomains:Bd,addEmailDomain:Gd,deleteEmailDomain:Ld}=vi.actions,Nd=t=>t.emailDomainsReducer.instances,Hd=l.createSelector([Nd],t=>Object.values(t)),my=S(l.createSelector([Hd,(t,e)=>e],(t,e)=>g(t.filter(s=>s.organization===e)))),Wd=vi.reducer,Kd={s3Urls:{}},Yd=1e3*60*60,py=Yd*24*7,wi=l.createSlice({name:"file",initialState:Kd,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Kd)),reducers:{setUploadUrl:(t,e)=>{const{url:s,fields:a,sha1:c}=e.payload,n=new Date,r=new Date(n.getTime()+py);t.s3Urls[c]={url:s,fields:a,exp:r.getTime()}}}}),{setUploadUrl:Jd}=wi.actions,Xd=t=>e=>{const s=e.fileReducer.s3Urls[t];if(!s)return;const a=new Date().getTime();if(!((s.exp??a)-a<Yd))return s},Qd=wi.reducer,ie=F(t=>t.uuid),Zd=ie.getInitialState({}),Ei=l.createSlice({name:"formRevisionAttachments",initialState:Zd,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Zd)),reducers:{initializeFormRevisionAttachments:ie.initialize,addFormRevisionAttachment:ie.addOne,addFormRevisionAttachments:ie.addMany,setFormRevisionAttachment:ie.setOne,setFormRevisionAttachments:ie.setMany,updateFormRevisionAttachment:ie.updateOne,updateFormRevisionAttachments:ie.updateMany,deleteFormRevisionAttachment:ie.deleteOne,deleteFormRevisionAttachments:ie.deleteMany}}),{initializeFormRevisionAttachments:xd,addFormRevisionAttachment:Ay,addFormRevisionAttachments:eu,setFormRevisionAttachment:yy,setFormRevisionAttachments:fy,updateFormRevisionAttachment:Sy,updateFormRevisionAttachments:tu,deleteFormRevisionAttachment:gy,deleteFormRevisionAttachments:su}=Ei.actions,iu=t=>t.formRevisionAttachmentReducer.instances,by=S(l.createSelector([iu,(t,e)=>e],(t,e)=>g(Object.values(t).filter(s=>s.form_revision===e)))),au=Ei.reducer,Py=(t,e)=>{const s=t.revision,a=e.revision;return s===void 0&&a===void 0?t.submitted_at<e.submitted_at?-1:1:s===void 0?1:a===void 0||s<a?-1:1},_e=F(t=>t.uuid),cu=_e.getInitialState({}),qi=l.createSlice({name:"formRevisions",initialState:cu,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,cu)),reducers:{initializeFormRevisions:_e.initialize,setFormRevision:_e.setOne,addFormRevision:_e.addOne,addFormRevisions:_e.addMany,deleteFormRevision:_e.deleteOne,deleteFormRevisions:_e.deleteMany}}),{setFormRevision:nu,initializeFormRevisions:ru,addFormRevision:ji,addFormRevisions:du,deleteFormRevision:Mi,deleteFormRevisions:uu}=qi.actions,Tt=t=>t.formRevisionReducer.instances,ou=l.createSelector([Tt],t=>Object.values(t)),Fy=t=>e=>e.formRevisionReducer.instances[t],Ty=S(l.createSelector([Tt,(t,e)=>e],(t,e)=>{const s=Object.values(t).filter(n=>n.form===e);if(s.length===0)return;const c=s.sort(Py)[s.length-1];return t[c.uuid]})),lu=S(l.createSelector([ou,(t,e)=>e],(t,e)=>g(t.filter(s=>s.form===e)))),hu=qi.reducer,ve=F(t=>t.uuid),mu=ve.getInitialState({}),Vi=l.createSlice({name:"forms",initialState:mu,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,mu)),reducers:{initializeForms:ve.initialize,setForm:ve.setOne,addForm:ve.addOne,addForms:ve.addMany,updateForm:ve.updateOne,deleteForm:ve.deleteOne}}),{initializeForms:pu,setForm:Iy,addForm:ki,addForms:Ry,updateForm:Oy,deleteForm:zi}=Vi.actions,Au=Vi.reducer,yu=t=>t.formReducer.instances,_y=l.createSelector([yu],t=>Object.values(t)),fu=t=>e=>e.formReducer.instances[t],ae=F(t=>t.uuid),Su=ae.getInitialState({}),Ci=l.createSlice({name:"formSubmissionAttachments",initialState:Su,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Su)),reducers:{initializeFormSubmissionAttachments:ae.initialize,addFormSubmissionAttachment:ae.addOne,addFormSubmissionAttachments:ae.addMany,setFormSubmissionAttachment:ae.setOne,setFormSubmissionAttachments:ae.setMany,updateFormSubmissionAttachment:ae.updateOne,updateFormSubmissionAttachments:ae.updateMany,deleteFormSubmissionAttachment:ae.deleteOne,deleteFormSubmissionAttachments:ae.deleteMany}}),{initializeFormSubmissionAttachments:gu,addFormSubmissionAttachment:vy,addFormSubmissionAttachments:It,setFormSubmissionAttachment:wy,setFormSubmissionAttachments:Ey,updateFormSubmissionAttachment:qy,updateFormSubmissionAttachments:bu,deleteFormSubmissionAttachment:jy,deleteFormSubmissionAttachments:Rt}=Ci.actions,Di=t=>t.formSubmissionAttachmentReducer.instances,Pu=S(l.createSelector([Di,(t,e)=>e],(t,e)=>{const s=new Set(e);return g(Object.values(t).filter(a=>s.has(a.uuid)))})),Fu=S(l.createSelector([Di,(t,e)=>e],(t,e)=>g(Object.values(t).filter(s=>s.form_submission===e)))),Tu=Ci.reducer,ce=F(t=>t.uuid),Iu=ce.getInitialState({}),Ui=l.createSlice({name:"formSubmissions",initialState:Iu,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Iu)),reducers:{initializeFormSubmissions:ce.initialize,setFormSubmission:ce.setOne,setFormSubmissions:ce.setMany,addFormSubmission:ce.addOne,addFormSubmissions:ce.addMany,updateFormSubmission:ce.updateOne,updateFormSubmissions:ce.updateMany,deleteFormSubmission:ce.deleteOne,deleteFormSubmissions:ce.deleteMany}}),{initializeFormSubmissions:Ru,setFormSubmission:Ot,setFormSubmissions:My,addFormSubmission:$i,addFormSubmissions:_t,updateFormSubmission:Ou,updateFormSubmissions:Vy,deleteFormSubmission:Bi,deleteFormSubmissions:vt}=Ui.actions,Gi=t=>t.formSubmissionReducer.instances,Li=l.createSelector([Gi],t=>Object.values(t)),Ni=t=>e=>e.formSubmissionReducer.instances[t],_u=S(l.createSelector([Gi,Tt,(t,e)=>e],(t,e,s)=>{const a=new Set;for(const c of Object.values(e))c.form===s&&a.add(c.uuid);return Object.values(t).filter(c=>a.has(c.form_revision))})),vu=S(l.createSelector([Li,(t,e)=>e],(t,e)=>Object.values(t).filter(s=>s.issue===e))),wu=S(l.createSelector([Li,(t,e)=>e],(t,e)=>t.filter(s=>s.asset===e))),Eu=Ui.reducer,ne=F(t=>t.uuid),qu=ne.getInitialState({}),Hi=l.createSlice({name:"geoImages",initialState:qu,extraReducers:t=>{t.addCase("RESET",e=>{Object.assign(e,qu)})},reducers:{initializeGeoImages:ne.initialize,setGeoImage:ne.setOne,setGeoImages:ne.setMany,addGeoImage:ne.addOne,addGeoImages:ne.addMany,updateGeoImage:ne.updateOne,updateGeoImages:ne.updateMany,deleteGeoImage:ne.deleteOne,deleteGeoImages:ne.deleteMany}}),{initializeGeoImages:ju,setGeoImage:tt,setGeoImages:Mu,addGeoImage:Vu,addGeoImages:ku,updateGeoImage:zu,updateGeoImages:ky,deleteGeoImage:Wi,deleteGeoImages:Cu}=Hi.actions,Du=t=>t.geoImageReducer.instances,Uu=l.createSelector([Du],t=>Object.values(t)),Ki=t=>e=>e.geoImageReducer.instances[t],zy=S(l.createSelector([Uu,(t,e)=>e],(t,e)=>g(t.filter(s=>s.project===e)))),$u=Hi.reducer,re=F(t=>t.uuid),Bu=re.getInitialState({}),Yi=l.createSlice({name:"issueAssociations",initialState:Bu,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Bu)),reducers:{initializeIssueAssociations:re.initialize,addIssueAssociation:re.addOne,addIssueAssociations:re.addMany,setIssueAssociation:re.setOne,setIssueAssociations:re.setMany,updateIssueAssociation:re.updateOne,updateIssueAssociations:re.updateMany,deleteIssueAssociation:re.deleteOne,deleteIssueAssociations:re.deleteMany}}),{initializeIssueAssociations:Gu,setIssueAssociations:Cy,setIssueAssociation:Dy,updateIssueAssociation:Lu,updateIssueAssociations:Uy,addIssueAssociation:Ji,addIssueAssociations:Xi,deleteIssueAssociation:Qi,deleteIssueAssociations:Zi}=Yi.actions,st=t=>t.issueAssociationReducer.instances,$y=l.createSelector([st],t=>Object.values(t)),Nu=t=>e=>e.issueAssociationReducer.instances[t],Hu=S(l.createSelector([st,(t,e)=>e],(t,e)=>g(Object.values(t).filter(s=>s.associated_issue===e)))),Wu=S(l.createSelector([st,(t,e)=>e],(t,e)=>g(Object.values(t).filter(s=>s.issue===e)))),Ku=S(l.createSelector([st,(t,e)=>e],(t,e)=>g(Object.values(t).filter(s=>s.asset===e)))),Yu=Yi.reducer,de=F(t=>t.uuid),Ju=de.getInitialState({}),xi=l.createSlice({name:"issueAttachments",initialState:Ju,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Ju)),reducers:{initializeIssueAttachments:de.initialize,addIssueAttachment:de.addOne,addIssueAttachments:de.addMany,setIssueAttachment:de.setOne,setIssueAttachments:de.setMany,updateIssueAttachment:de.updateOne,updateIssueAttachments:de.updateMany,deleteIssueAttachment:de.deleteOne,deleteIssueAttachments:de.deleteMany}}),{initializeIssueAttachments:ea,addIssueAttachment:By,addIssueAttachments:ta,setIssueAttachment:Xu,setIssueAttachments:Gy,updateIssueAttachment:Ly,updateIssueAttachments:Qu,deleteIssueAttachment:Zu,deleteIssueAttachments:sa}=xi.actions,xu=t=>t.issueAttachmentReducer.instances,eo=l.createSelector([xu],t=>Object.values(t)),to=S(l.createSelector([eo,(t,e)=>e],(t,e)=>g(t.filter(({issue:s})=>e===s)))),so=t=>e=>e.issueAttachmentReducer.instances[t],io=xi.reducer,ue=F(t=>t.uuid),ao=ue.getInitialState({}),ia=l.createSlice({name:"issueCommentAttachments",initialState:ao,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,ao)),reducers:{initializeIssueCommentAttachments:ue.initialize,addIssueCommentAttachment:ue.addOne,addIssueCommentAttachments:ue.addMany,setIssueCommentAttachment:ue.setOne,setIssueCommentAttachments:ue.setMany,updateIssueCommentAttachment:ue.updateOne,updateIssueCommentAttachments:ue.updateMany,deleteIssueCommentAttachment:ue.deleteOne,deleteIssueCommentAttachments:ue.deleteMany}}),{initializeIssueCommentAttachments:aa,addIssueCommentAttachment:Ny,addIssueCommentAttachments:co,setIssueCommentAttachment:no,setIssueCommentAttachments:Hy,updateIssueCommentAttachment:Wy,updateIssueCommentAttachments:ro,deleteIssueCommentAttachment:uo,deleteIssueCommentAttachments:oo}=ia.actions,lo=t=>t.issueCommentAttachmentReducer.instances,ho=l.createSelector([lo],t=>Object.values(t)),mo=t=>e=>e.issueCommentAttachmentReducer.instances[t],Ky=S(l.createSelector([ho,(t,e)=>e],(t,e)=>g(t.filter(({issue_comment:s})=>e===s)))),po=ia.reducer,we=F(t=>t.uuid),Ao=we.getInitialState({}),ca=l.createSlice({name:"issueComments",initialState:Ao,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Ao)),reducers:{addIssueComment:we.addOne,addIssueComments:we.addMany,setIssueComment:we.setOne,setIssueComments:we.setMany,deleteIssueComment:we.deleteOne,deleteIssueComments:we.deleteMany}}),{setIssueComments:yo,setIssueComment:na,addIssueComment:ra,addIssueComments:Yy,deleteIssueComment:da,deleteIssueComments:Jy}=ca.actions,fo=t=>t.issueCommentReducer.instances,ua=t=>e=>e.issueCommentReducer.instances[t],Xy=S(l.createSelector([fo,(t,e)=>e],(t,e)=>g(Object.values(t).filter(s=>s.issue===e)))),So=ca.reducer,Ee=F(t=>t.uuid),go=Ee.getInitialState({}),oa=l.createSlice({name:"issues",initialState:go,extraReducers:t=>t.addCase("RESET",e=>{Object.assign(e,go)}),reducers:{initializeIssues:Ee.initialize,addIssue:Ee.addOne,addIssues:Ee.addMany,updateIssue:Ee.updateOne,deleteIssue:Ee.deleteOne,deleteIssues:Ee.deleteMany}}),{initializeIssues:bo,addIssue:la,addIssues:Po,updateIssue:wt,deleteIssue:ha,deleteIssues:Fo}=oa.actions,To=t=>t.issueReducer.instances,ma=t=>e=>e.issueReducer.instances[t],Qy=S(l.createSelector([To,(t,e)=>e],(t,e)=>{const s=[];for(const a of e){const c=t[a];c?s.push(c):console.warn("selectIssuesByIds: No issue exists with the id",a)}return g(s)})),Io=oa.reducer,oe=F(t=>t.uuid),Ro=oe.getInitialState({}),pa=l.createSlice({name:"issueTypeAttachments",initialState:Ro,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Ro)),reducers:{initializeIssueTypeAttachments:oe.initialize,addIssueTypeAttachment:oe.addOne,addIssueTypeAttachments:oe.addMany,setIssueTypeAttachment:oe.setOne,setIssueTypeAttachments:oe.setMany,updateIssueTypeAttachment:oe.updateOne,updateIssueTypeAttachments:oe.updateMany,deleteIssueTypeAttachment:oe.deleteOne,deleteIssueTypeAttachments:oe.deleteMany}}),{initializeIssueTypeAttachments:Aa,addIssueTypeAttachment:Zy,addIssueTypeAttachments:Oo,setIssueTypeAttachment:_o,setIssueTypeAttachments:xy,updateIssueTypeAttachment:ef,updateIssueTypeAttachments:vo,deleteIssueTypeAttachment:wo,deleteIssueTypeAttachments:Eo}=pa.actions,qo=t=>t.issueTypeAttachmentReducer.instances,jo=l.createSelector([qo],t=>Object.values(t)),Mo=t=>e=>e.issueTypeAttachmentReducer.instances[t],tf=S(l.createSelector([jo,(t,e)=>e],(t,e)=>g(t.filter(({issue_type:s})=>e===s)))),Vo=pa.reducer,le=F(t=>t.uuid),ko=le.getInitialState({}),ya=l.createSlice({name:"issueTypeFieldsAttachments",initialState:ko,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,ko)),reducers:{initializeIssueTypeFieldsAttachments:le.initialize,addIssueTypeFieldsAttachment:le.addOne,addIssueTypeFieldsAttachments:le.addMany,setIssueTypeFieldsAttachment:le.setOne,setIssueTypeFieldsAttachments:le.setMany,updateIssueTypeFieldsAttachment:le.updateOne,updateIssueTypeFieldsAttachments:le.updateMany,deleteIssueTypeFieldsAttachment:le.deleteOne,deleteIssueTypeFieldsAttachments:le.deleteMany}}),{initializeIssueTypeFieldsAttachments:zo,addIssueTypeFieldsAttachment:sf,addIssueTypeFieldsAttachments:Co,setIssueTypeFieldsAttachment:af,setIssueTypeFieldsAttachments:cf,updateIssueTypeFieldsAttachment:nf,updateIssueTypeFieldsAttachments:Do,deleteIssueTypeFieldsAttachment:rf,deleteIssueTypeFieldsAttachments:Uo}=ya.actions,$o=t=>t.issueTypeFieldsAttachmentReducer.instances,Bo=l.createSelector([$o],t=>Object.values(t)),df=S(l.createSelector([Bo,(t,e)=>e],(t,e)=>g(t.filter(s=>s.fields_revision===e)))),uf=t=>e=>e.issueTypeFieldsAttachmentReducer.instances[t],Go=ya.reducer,he=F(t=>t.uuid),Lo=he.getInitialState({}),fa=l.createSlice({name:"issueTypeFieldValues",initialState:Lo,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Lo)),reducers:{initializeIssueTypeFieldValues:he.initialize,addIssueTypeFieldValues:he.addOne,addIssueTypeFieldValuesMany:he.addMany,setIssueTypeFieldValues:he.setOne,setIssueTypeFieldValuesMany:he.setMany,updateIssueTypeFieldValues:he.updateOne,updateIssueTypeFieldValuesMany:he.updateMany,deleteIssueTypeFieldValues:he.deleteOne,deleteIssueTypeFieldValuesMany:he.deleteMany}}),{initializeIssueTypeFieldValues:No,addIssueTypeFieldValues:Sa,addIssueTypeFieldValuesMany:of,setIssueTypeFieldValues:lf,setIssueTypeFieldValuesMany:hf,updateIssueTypeFieldValues:it,updateIssueTypeFieldValuesMany:mf,deleteIssueTypeFieldValues:ga,deleteIssueTypeFieldValuesMany:pf}=fa.actions,Ho=t=>t.issueTypeFieldValuesReducer.instances,ba=l.createSelector([Ho],t=>Object.values(t)),Af=S(l.createSelector([ba,(t,e)=>e],(t,e)=>g(t.filter(s=>s.issue===e)))),Pa=t=>e=>e.issueTypeFieldValuesReducer.instances[t],Wo=fa.reducer,me=F(t=>t.uuid),Ko=me.getInitialState({}),Fa=l.createSlice({name:"issueTypeFields",initialState:Ko,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Ko)),reducers:{initializeIssueTypeFields:me.initialize,addIssueTypeFields:me.addOne,addIssueTypeFieldsMany:me.addMany,setIssueTypeFields:me.setOne,setIssueTypeFieldsMany:me.setMany,updateIssueTypeFields:me.updateOne,updateIssueTypeFieldsMany:me.updateMany,deleteIssueTypeFields:me.deleteOne,deleteIssueTypeFieldsMany:me.deleteMany}}),{initializeIssueTypeFields:Yo,addIssueTypeFields:Jo,addIssueTypeFieldsMany:yf,setIssueTypeFields:ff,setIssueTypeFieldsMany:Sf,updateIssueTypeFields:Xo,updateIssueTypeFieldsMany:gf,deleteIssueTypeFields:Qo,deleteIssueTypeFieldsMany:bf}=Fa.actions,Zo=t=>t.issueTypeFieldsReducer.instances,Et=l.createSelector([Zo],t=>Object.values(t)),Pf=S(l.createSelector([Et,(t,e)=>e],(t,e)=>g(t.filter(s=>s.issue_type===e)))),Ff=S(l.createSelector([Et,(t,e)=>e],(t,e)=>t.filter(s=>s.issue_type===e).sort((s,a)=>s.submitted_at>a.submitted_at?-1:1)[0])),Tf=S(l.createSelector([Et,ba,(t,e)=>e],(t,e,s)=>{const a=new Set(t.filter(c=>c.issue_type===s).map(c=>c.uuid));return g(e.filter(c=>a.has(c.fields_revision)))})),If=t=>e=>e.issueTypeFieldsReducer.instances[t],xo=Fa.reducer,pe=F(t=>t.uuid),el=pe.getInitialState({}),Ta=l.createSlice({name:"issueTypeFieldValuesAttachments",initialState:el,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,el)),reducers:{initializeIssueTypeFieldValuesAttachments:pe.initialize,addIssueTypeFieldValuesAttachment:pe.addOne,addIssueTypeFieldValuesAttachments:pe.addMany,setIssueTypeFieldValuesAttachment:pe.setOne,setIssueTypeFieldValuesAttachments:pe.setMany,updateIssueTypeFieldValuesAttachment:pe.updateOne,updateIssueTypeFieldValuesAttachments:pe.updateMany,deleteIssueTypeFieldValuesAttachment:pe.deleteOne,deleteIssueTypeFieldValuesAttachments:pe.deleteMany}}),{initializeIssueTypeFieldValuesAttachments:tl,addIssueTypeFieldValuesAttachment:Rf,addIssueTypeFieldValuesAttachments:qt,setIssueTypeFieldValuesAttachment:Of,setIssueTypeFieldValuesAttachments:_f,updateIssueTypeFieldValuesAttachment:vf,updateIssueTypeFieldValuesAttachments:sl,deleteIssueTypeFieldValuesAttachment:wf,deleteIssueTypeFieldValuesAttachments:jt}=Ta.actions,Ia=t=>t.issueTypeFieldValuesAttachmentReducer.instances,il=l.createSelector([Ia],t=>Object.values(t)),Ef=t=>e=>e.issueTypeFieldValuesAttachmentReducer.instances[t],al=S(l.createSelector([Ia,(t,e)=>e],(t,e)=>{const s=new Set(e);return g(Object.values(t).filter(a=>s.has(a.uuid)))})),cl=S(l.createSelector([il,(t,e)=>e],(t,e)=>g(t.filter(s=>s.field_values===e)))),nl=Ta.reducer,De=F(t=>t.uuid),rl=De.getInitialState({}),Ra=l.createSlice({name:"issueTypes",initialState:rl,extraReducers:t=>t.addCase("RESET",e=>{Object.assign(e,rl)}),reducers:{initializeIssueTypes:De.initialize,setIssueType:De.setOne,addIssueType:De.addOne,updateIssueType:De.updateOne,removeIssueType:De.deleteOne}}),{initializeIssueTypes:dl,setIssueType:at,addIssueType:ul,updateIssueType:ol,removeIssueType:Oa}=Ra.actions,ll=t=>t.issueTypeReducer.instances,hl=l.createSelector(ll,t=>Object.values(t)),_a=t=>e=>e.issueTypeReducer.instances[t],qf=t=>e=>{const s=[];for(const a of t){const c=e.issueTypeReducer.instances[a];c?s.push(c):console.warn("selectIssueTypesByIds: No issue type exists with the id",a)}return s},jf=S(l.createSelector([hl,(t,e)=>e],(t,e)=>g(t.filter(s=>s.organization===e)))),va=S(l.createSelector([t=>t.issueReducer.instances,(t,e)=>e],(t,e)=>g(Object.values(t).filter(s=>s.issue_type===e)))),Mf=t=>e=>va(t)(e).length,ml=Ra.reducer,qe=F(t=>t.uuid),pl=qe.getInitialState({}),wa=l.createSlice({name:"issueUpdates",initialState:pl,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,pl)),reducers:{initializeIssueUpdates:qe.setMany,setIssueUpdate:qe.setOne,addIssueUpdate:qe.addOne,addIssueUpdates:qe.addMany,deleteIssueUpdate:qe.deleteOne,deleteIssueUpdates:qe.deleteMany}}),{initializeIssueUpdates:Al,setIssueUpdate:Vf,addIssueUpdate:yl,addIssueUpdates:fl,deleteIssueUpdate:Sl,deleteIssueUpdates:gl}=wa.actions,bl=t=>t.issueUpdateReducer.instances,Pl=S(l.createSelector([bl,(t,e)=>e],(t,e)=>g(Object.values(t).filter(s=>s.issue===e)))),Fl=wa.reducer,Mt=F(t=>t.uuid),Tl=Mt.getInitialState({}),Ea=l.createSlice({name:"license",initialState:Tl,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Tl)),reducers:{initializeLicences:Mt.initialize,addLicenses:Mt.addMany,updateLicense:Mt.updateOne}}),{initializeLicences:Il,addLicenses:kf,updateLicense:Pe}=Ea.actions,Vt=t=>t.licenseReducer.instances,zf=t=>e=>e.licenseReducer.instances[t],Rl=t=>e=>Object.values(e.licenseReducer.instances).find(s=>s.project===t),Cf=l.createSelector([Vt],t=>g(Object.values(t).filter(e=>e.is_active))),Df=l.createSelector([Vt],t=>Oe(Object.values(t).filter(e=>e.project).reduce((e,s)=>({...e,[s.project]:s}),{}))),Ol=Ea.reducer,V=F(t=>t.id),_l=V.getInitialState({currentUser:null}),qa=l.createSlice({name:"users",initialState:_l,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,_l)),reducers:{initializeUsers:V.initialize,setUsers:V.setMany,setUser:V.setOne,addUsers:V.addMany,addUser:V.addOne,updateUsers:V.updateMany,updateUser:V.updateOne,deleteUser:V.deleteOne,deleteUsers:V.deleteMany,removeUser:V.deleteOne,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:Uf,setUser:$f,addUsers:Bf,addUser:Gf,updateUsers:Lf,updateUser:Nf,deleteUser:Hf,deleteUsers:Wf,removeUser:wl,setCurrentUser:Kf,setProfilePicture:Yf}=qa.actions,El=qa.reducer,kt=t=>t.userReducer.currentUser,zt=t=>t.userReducer.instances,Jf=t=>e=>e.userReducer.instances[t],Xf=S(l.createSelector([zt,(t,e)=>e],(t,e)=>{const s=[];for(const a of e){const c=t[a];c?s.push(c):console.warn("selectUsersByIds: No user exists with the uuid",a)}return g(s)})),Ct=F(t=>t.uuid),ql=Ct.getInitialState({}),ja=l.createSlice({name:"organizationAccess",initialState:ql,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,ql)),reducers:{initializeOrganizationAccesses:Ct.initialize,updateOrganizationAccess:Ct.updateOne,deleteOrganizationAccess:Ct.deleteOne}}),{initializeOrganizationAccesses:jl,updateOrganizationAccess:Ml,deleteOrganizationAccess:Vl}=ja.actions,Ma=t=>t.organizationAccessReducer.instances,Qf=t=>e=>e.organizationAccessReducer.instances[t],Zf=l.createSelector([kt,Ma],(t,e)=>Object.values(e).find(a=>a.user===(t==null?void 0:t.id))??null),xf=t=>e=>Object.values(e.organizationAccessReducer.instances).find(s=>s.user===t.id),kl=t=>{const e={};for(const s of Object.values(t.organizationAccessReducer.instances))e[s.user]=s;return Oe(e)},zl=ja.reducer,ct=F(t=>t.uuid),Cl=ct.getInitialState({}),Va=l.createSlice({name:"projectAccess",initialState:Cl,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Cl)),reducers:{initializeProjectAccesses:ct.initialize,updateProjectAccess:ct.updateOne,deleteProjectAccess:ct.deleteOne,deleteProjectAccesses:ct.deleteMany}}),{initializeProjectAccesses:ka,updateProjectAccess:Dl,deleteProjectAccess:Ul,deleteProjectAccesses:$l}=Va.actions,za=t=>t.projectAccessReducer.instances,Bl=l.createSelector(za,t=>Object.values(t)),eS=t=>e=>e.projectAccessReducer.instances[t],tS=t=>e=>Object.values(e.projectAccessReducer.instances).find(s=>s.user===t.id),Gl=t=>{const e={};for(const s of Object.values(t.projectAccessReducer.instances))e[s.user]=s;return Oe(e)},Ll=Va.reducer,Ae=F(t=>t.uuid),Nl=Ae.getInitialState({}),Ca=l.createSlice({name:"projects",initialState:Nl,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Nl)),reducers:{initializeProjects:Ae.initialize,setProjects:Ae.setMany,setProject:Ae.setOne,addProjects:Ae.addMany,addProject:Ae.addOne,updateProjects:Ae.updateMany,updateProject:Ae.updateOne,deleteProject:Ae.deleteOne,deleteProjects:Ae.deleteMany,acceptProjectInvite:(t,e)=>{if(e.payload in t.instances)t.instances[e.payload].invited=!1;else throw new Error("Accept project invite: user is not in this project")}}}),{initializeProjects:sS,setProjects:Hl,setProject:iS,addProjects:aS,addProject:cS,updateProjects:nS,updateProject:Wl,deleteProject:Kl,deleteProjects:rS,acceptProjectInvite:Yl}=Ca.actions,Jl=Ca.reducer,Dt=t=>t.projectReducer.instances,dS=l.createSelector([Dt],t=>g(Object.values(t))),uS=t=>e=>e.projectReducer.instances[t],Xl=l.createSelector([za],t=>Object.values(t).map(e=>e.user)),Ql=l.createSelector([Xl,zt],(t,e)=>t.reduce((s,a)=>({...s,[a]:e[a]}),{})),oS=l.createSelector([kt,Ql,Gl],(t,e,s)=>g(Object.values(e).sort((a,c)=>{if(a.id===(t==null?void 0:t.id))return-1;if(c.id===(t==null?void 0:t.id))return 1;const n=s[a.id],r=s[c.id];return(n==null?void 0:n.access_level)===(r==null?void 0:r.access_level)?a.username.localeCompare(c.username):(n==null?void 0:n.access_level)===Bt.ADMIN?-1:1}))),ye=F(t=>t.uuid),Zl=ye.getInitialState({}),Da=l.createSlice({name:"organizations",initialState:Zl,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Zl)),reducers:{initializeOrganizations:ye.initialize,setOrganizations:ye.setMany,setOrganization:ye.setOne,addOrganizations:ye.addMany,addOrganization:ye.addOne,updateOrganizations:ye.updateMany,updateOrganization:ye.updateOne,deleteOrganization:ye.deleteOne,deleteOrganizations:ye.deleteMany}}),{initializeOrganizations:lS,setOrganizations:xl,setOrganization:hS,addOrganizations:mS,addOrganization:pS,updateOrganizations:AS,updateOrganization:yS,deleteOrganization:fS,deleteOrganizations:SS}=Da.actions,eh=t=>t.organizationReducer.instances,th=l.createSelector([eh],t=>Object.values(t)),gS=t=>e=>e.organizationReducer.instances[t],bS=l.createSelector([th],t=>g(Object.values(t).filter(e=>e.has_access))),sh=l.createSelector([Ma],t=>Object.values(t).map(e=>e.user)),PS=S(l.createSelector([Dt,(t,e)=>e],(t,e)=>g(Object.values(t).filter(s=>s.organization_owner===e)))),FS=S(l.createSelector([Vt,(t,e)=>e],(t,e)=>g(Object.values(t).filter(s=>s.organization_owner===e)))),ih=l.createSelector([sh,zt],(t,e)=>Oe(t.reduce((s,a)=>({...s,[a]:e[a]}),{}))),TS=l.createSelector([kt,ih,kl],(t,e,s)=>g(Object.values(e).sort((a,c)=>{if(a.id===(t==null?void 0:t.id))return-1;if(c.id===(t==null?void 0:t.id))return 1;const n=s[a.id],r=s[c.id];return(n==null?void 0:n.access_level)===(r==null?void 0:r.access_level)?a.username.localeCompare(c.username):(n==null?void 0:n.access_level)===Gt.ADMIN?-1:1}))),ah=Da.reducer,ch=(t,e,s)=>{const a=t.uuid?t:{...t,uuid:Re.v4()};return{payload:a,type:"",meta:{offline:{effect:{timestamp:new Date().toISOString(),request:a,BASE_URL:e,serviceName:s}}}}},nh={deletedRequests:[],latestRetryTime:0},Ua=l.createSlice({name:"outbox",initialState:nh,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,nh)),reducers:{enqueueRequest:{reducer:(t,e)=>t,prepare:t=>{console.debug("Preparing to enqueue request",t);const{BASE_URL:e,serviceName:s,...a}=t;return ch(a,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}}}),IS=t=>t.outboxReducer.deletedRequests,RS=t=>t.outboxReducer.latestRetryTime,{enqueueRequest:rh,markForDeletion:OS,markAsDeleted:dh,_setLatestRetryTime:uh}=Ua.actions,oh=Ua.reducer,fe=F(t=>t.uuid),lh=fe.getInitialState({}),$a=l.createSlice({name:"projectAttachments",initialState:lh,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,lh)),reducers:{initializeProjectAttachments:fe.initialize,addProjectAttachment:fe.addOne,addProjectAttachments:fe.addMany,setProjectAttachment:fe.setOne,setProjectAttachments:fe.setMany,updateProjectAttachment:fe.updateOne,updateProjectAttachments:fe.updateMany,deleteProjectAttachment:fe.deleteOne,deleteProjectAttachments:fe.deleteMany}}),{initializeProjectAttachments:hh,addProjectAttachment:_S,addProjectAttachments:mh,setProjectAttachment:ph,setProjectAttachments:Ah,updateProjectAttachment:vS,updateProjectAttachments:yh,deleteProjectAttachment:fh,deleteProjectAttachments:Ba}=$a.actions,Sh=t=>t.projectAttachmentReducer.instances,gh=l.createSelector([Sh],t=>Object.values(t)),bh=t=>e=>e.projectAttachmentReducer.instances[t],Ph=S(l.createSelector([gh,(t,e)=>e],(t,e)=>g(t.filter(({project:s})=>e===s)))),Fh=$a.reducer,Se=F(t=>t.uuid),Th=Se.getInitialState({activeProjectFileId:null,isImportingProjectFile:!1}),Ga=l.createSlice({name:"projectFiles",initialState:Th,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Th)),reducers:{initializeProjectFiles:Se.initialize,setProjectFile:Se.setOne,setProjectFiles:Se.setMany,addProjectFile:Se.addOne,addProjectFiles:Se.addMany,updateProjectFile:Se.updateOne,updateProjectFiles:Se.updateMany,deleteProjectFile:Se.deleteOne,deleteProjectFiles:Se.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
|
-
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:Ih,setProjectFile:wS,setProjectFiles:ES,addProjectFile:qS,addProjectFiles:Rh,updateProjectFile:La,updateProjectFiles:jS,deleteProjectFile:Oh,deleteProjectFiles:_h,setIsImportingProjectFile:vh,setActiveProjectFileId:wh,saveActiveProjectFileBounds:Eh,resetProjectFileObjectUrls:MS}=Ga.actions,qh=t=>t.projectFileReducer.instances,jh=l.createSelector([qh],t=>g(Object.values(t).sort((e,s)=>e.z_index-s.z_index))),VS=t=>e=>e.projectFileReducer.instances[t],kS=t=>t.projectFileReducer.activeProjectFileId,zS=t=>t.projectFileReducer.isImportingProjectFile,Mh=Ga.reducer,CS={isRehydrated:!1},Na=l.createSlice({name:"rehydrated",initialState:CS,reducers:{setRehydrated:(t,e)=>{t.isRehydrated=e.payload}}}),{setRehydrated:DS}=Na.actions,US=t=>t.rehydratedReducer.isRehydrated,Vh=Na.reducer,Ue=F(t=>t.uuid),kh=Ue.getInitialState({}),Ha=l.createSlice({name:"teams",initialState:kh,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,kh)),reducers:{setTeam:Ue.setOne,initializeTeams:Ue.initialize,addTeam:Ue.addOne,updateTeam:Ue.updateOne,deleteTeam:Ue.deleteOne}}),{setTeam:$e,initializeTeams:zh,addTeam:Ch,updateTeam:Wa,deleteTeam:Ka}=Ha.actions,Ya=t=>t.teamReducer.instances,Ja=l.createSelector([Ya],t=>Object.values(t)),Be=t=>e=>e.teamReducer.instances[t],$S=S(l.createSelector([Ya,(t,e)=>e],(t,e)=>{const s=[];for(const a of e){const c=t[a];c?s.push(c):console.warn("selectTeamsByIds: No team exists with the id",a)}return g(s)})),BS=S(l.createSelector([Ja,(t,e)=>e],(t,e)=>g(t.filter(s=>s.organization===e)))),GS=S(l.createSelector([Ja,(t,e)=>e],(t,e)=>g(t.filter(s=>s.members.includes(e))))),Dh=Ha.reducer,LS={version:0},Uh=l.createSlice({name:"versioning",initialState:LS,reducers:{}}),$h=Uh.reducer,Xa={outboxReducer:oh,fileReducer:Qd,authReducer:fd},NS=l.combineReducers(Xa),Bh={...Xa,[Ne]:$h,categoryReducer:Fd,assetReducer:mr,assetAttachmentReducer:Vc,assetStageCompletionReducer:Sr,assetStageReducer:Ir,assetTypeReducer:pd,assetTypeAttachmentReducer:zr,issueReducer:Io,issueAttachmentReducer:io,issueTypeReducer:ml,issueTypeAttachmentReducer:Vo,organizationReducer:ah,projectReducer:Jl,projectAttachmentReducer:Fh,projectAccessReducer:Ll,organizationAccessReducer:zl,projectFileReducer:Mh,rehydratedReducer:Vh,formReducer:Au,formRevisionReducer:hu,formRevisionAttachmentReducer:au,formSubmissionAttachmentReducer:Tu,formSubmissionReducer:Eu,userReducer:El,emailDomainsReducer:Wd,licenseReducer:Ol,documentsReducer:$d,documentAttachmentReducer:Md,teamReducer:Dh,agentsReducer:Rc,issueCommentReducer:So,issueCommentAttachmentReducer:po,issueUpdateReducer:Fl,geoImageReducer:$u,issueAssociationReducer:Yu,issueTypeFieldsReducer:xo,issueTypeFieldValuesReducer:Wo,issueTypeFieldsAttachmentReducer:Go,issueTypeFieldValuesAttachmentReducer:nl,assetTypeFieldsReducer:Qr,assetTypeFieldValuesReducer:ld,assetTypeFieldsAttachmentReducer:Nr,assetTypeFieldValuesAttachmentReducer:ad,assetProcedureReducer:qn,assetProcedureInstanceReducer:_n,assetProcedureFieldsReducer:rn,assetProcedureFieldValuesReducer:Pn,assetProcedureFieldsAttachmentReducer:xc,assetProcedureFieldValuesAttachmentReducer:pn,assetProcedureAttachmentReducer:Hc,assetProcedureStepFieldsAttachmentReducer:Un,assetProcedureStepFieldsReducer:Gn,assetProcedureStepFieldValuesAttachmentReducer:Jn,assetProcedureStepFieldValuesReducer:sr,assetProcedureStepReducer:nr},HS=l.combineReducers(Bh);let Gh;function WS(t){Gh=t}function nt(){return Gh}let Lh;function KS(t){Lh=t}function YS(){return Lh}const Nh={};class Hh{constructor(e){f(this,"client");Nh[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 Wh=()=>Jh.length-1,Kh=t=>(t[Ne]={version:Wh()},t),Yh=()=>Kh({}),JS=t=>(t.outboxReducer&&(t.outboxReducer.deletedRequests=[]),t),XS=t=>e=>{var s;return e===void 0&&(e={}),((s=e[Ne])==null?void 0:s.version)===Wh()?e:t(e)},Jh=[Kh,Yh,Yh,JS],QS=Object.fromEntries(Jh.map((t,e)=>[e,XS(t)]));let Qa=null;function je(){const t=nt();if(!t)return console.warn("Client store not set; cannot get outbox coordinator yet."),null;if(Qa)return Qa;const e=t.getState().offline.outbox,s=Le._fromOutbox(e);return Qa=s,s}const ZS=t=>{if(t)throw t;const e=nt();e?e.dispatch({type:"rehydrated/setRehydrated",payload:!0}):console.error("Client store not set")},Xh=(t,e,s)=>{const a=je();return a?(a.addRequest(e),a.getQueue()):(console.warn("Outbox coordinator not set; cannot enqueue request yet."),[])},Qh=(t,e,s)=>{const a=je();if(!a)return console.warn("Outbox coordinator not set; cannot dequeue request yet."),[];const n=e.meta.offlineAction.payload.uuid;return a.remove(n),a.getQueue()};async function xS(t,e){if(!e.payload)throw new Error("Received empty payload");return dg(e)}const eg={...ic,effect:xS,discard:xa,returnPromises:!0,persistCallback:ZS,retry:og,persistOptions:{storage:nm},queue:{...ic.queue,enqueue:Xh,dequeue:Qh,peek:(...t)=>ug(...t)}},tg=rm(QS,Ne),sg=l.compose(cm.offline(eg),tg);function ig(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 Za(t,e){const s=Nh[t.meta.offline.effect.serviceName];if(!s)throw new Error(`Service ${t.meta.offline.effect.serviceName} not found`);const a=s instanceof O;if(e.store.getState().outboxReducer.deletedRequests.includes(t.payload.uuid))throw new Error("Request was marked for deletion");let n=null;a&&t.payload.checkAuth&&(n=s.auth.prepareAuth());const r={queryParams:"",isAuthNeeded:!0},u=t.meta.offline.effect,{payload:m,headers:d,method:o,queryParams:p,attachmentHash:A,isExternalUrl:y,isAuthNeeded:b,isResponseBlob:P}={...r,...u.request},I=u.request;let R=I.url;const E=A?await e.files.fetchCache(A):void 0;if(A&&!E)throw new Error(`Cannot upload file ${A} because it's not cached.`);!y&&!R.startsWith("http")&&(!R.startsWith("/")&&!R.startsWith("blob:")&&(R="/"+R),R=t.meta.offline.effect.BASE_URL+R);const ge=q=>{if(A){const be=I.s3url;if(!be)throw new Error(`No S3 URL for file ${A}`);if("warning"in be)throw new Error(`S3 URL warning for file ${A}`);if(!E)throw new Error(`No file for file ${A}`);const rt=be.fields["x-amz-checksum-sha1"];if(!rt)throw new Error(`No checksum for file ${A}`);return q.set("x-amz-checksum-sha1",rt).field({...m,...be.fields}).attach("file",E)}return q.send(m)},Fb={[h.GET]:()=>P?ke.get(R.toString()).responseType("blob"):ke.get(R.toString()),[h.POST]:()=>{const q=ke.post(R.toString());return ge(q)},[h.PATCH]:()=>{const q=ke.patch(R.toString());return ge(q)},[h.PUT]:()=>{const q=ke.put(R.toString());return ge(q)},[h.DELETE]:()=>{const q=ke.delete(R.toString());return ge(q)}}[o];n&&await n;let Ve=Fb();b&&a&&(Ve=s.auth.prepareRequest(Ve)),d&&(Ve=Ve.set(d));try{return await Ve.query(p)}catch(q){const be=ig(q),rt=be==null?void 0:be.status;if(a&&rt===401)return await s.auth.handleUnauthorized(Ve,be),Ve.query(p);throw new M({response:be,innerError:q,discard:xh.includes(rt)})}}class ag{constructor(e){f(this,"_all");f(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 Zh{constructor(){f(this,"next");this.next=null}then(e){return new ag(this).then(e)}async run(e){if(this.next)return this.next.run(e);{if(console.debug("Middleware finished. Performing request:",e),!nt())throw new Error("Client store not set");const a=YS();if(!a)throw new Error("Client SDK not set");return Za(e,a)}}}class cg extends Zh{async run(e){return super.run(e)}}class ng extends Zh{async run(e){return super.run(e)}}const rg=new cg().then(new ng).compile();function dg(t){var e;return(e=rg[0])==null?void 0:e.run(t)}const xh=[400,409,403,404,405,500];function xa(t,e,s=0){var d;if(console.debug("Considering discarding request due to error:",t,`(${typeof t})`,`
|
|
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,Le,Ne,hm,mm,oc,FP,pm,Am,TP,ym,fm,Sm){"use strict";var bP=Object.defineProperty;var PP=(a,z,d)=>z in a?bP(a,z,{enumerable:!0,configurable:!0,writable:!0,value:d}):a[z]=d;var S=(a,z,d)=>PP(a,typeof z!="symbol"?z+"":z,d);var lm;const lc=Object.freeze([]),hc=Object.freeze({});var mc=(t=>(t[t.GUEST=0]="GUEST",t[t.BASIC=2]="BASIC",t[t.ADMIN=4]="ADMIN",t))(mc||{}),h=(t=>(t.GET="GET",t.POST="POST",t.PATCH="PATCH",t.PUT="PUT",t.DELETE="DELETE",t))(h||{}),pc=(t=>(t.Issue="issue",t.Asset="asset",t.AssetType="asset_type",t.Project="project",t.Document="document",t))(pc||{}),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 gm=Lt.BACKLOG,bm=Gt.MEDIUM,Ac=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 Pm(){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 Je="versioning",F=d.createAction("RESET"),M=d.createAction("RESET_PROJECT_STATE"),O=d.createAction("RESET_ORGANIZATION_STATE");lm=Symbol.toStringTag;class yc{constructor(){S(this,lm,"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 Fm=t=>({type:"Point",coordinates:t}),Tm=t=>({type:"MultiPoint",coordinates:t}),Im=(t,e)=>t[0]===e[0]&&t[1]===e[1];let Nt=!1;["true","1"].includes("".toLowerCase())&&(Nt=!0);function Om(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 _m(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?lc:t,ht=t=>Object.keys(t).length===0?hc:t,fc=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)}),Rm=new Intl.RelativeTimeFormat([],{style:"long",numeric:"auto"}),vm=1e3*86400,Wt=new Date,wm=t=>new Date(t).toDateString()===Wt.toDateString(),Mm=Ht((t,e,s)=>{const i=Math.round((new Date(t).getTime()-Wt.getTime())/vm);return i<e||i>s?fc(t):Rm.format(i,"days")});function Em(t){return new Uint8Array(t).reduce((s,i)=>s+i.toString(16).padStart(2,"0"),"")}const Kt=async(t,e)=>{e||(e=await He(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 He(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=Em(n);e(r)})},i.readAsArrayBuffer(t)})}function jm(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 Sc(t,e){return new File([t],e,{type:t.type})}function qm(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 Vm=async t=>{const e={};for(const s of t){const i=await He(s);e[i]={sha1:i,extension:s.name.split(".").pop()||"",file_type:s.type,size:s.size}}return Object.values(e)},gc=async t=>(await fetch(t)).blob(),zm=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 Um(t){const e=new Blob([t]);hm.saveAs(e,t.name)}const bc={};function Dm(t,e,s,...i){const c=bc[t];let n=!1;c?c[e]||(c[e]=!0,n=!0):(bc[t]={[e]:!0},n=!0),n&&console[s](...i)}const Pc=["created_at","updated_at","index","revision"];function T(t){return{...t,uuid:Ne.v4()}}function Fc(t){const e={};for(const s of t)e[s.uuid]=s;return e}function Cm(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 km(t){return t.toLowerCase().replace(" ","-")}function Bm(t,e=!1){return t.normalize("NFKD").toLowerCase().replace(/[^\w\s-]/g,"").trim().replace(/[-\s]+/g,e?"_":"-")}function $m(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 Tc(t,e,s){return s.findIndex(i=>i.uuid===t.uuid)===e}function Gm(t,e,s){return s.findIndex(i=>i.file_sha1===t.file_sha1)===e}const Lm=/^.+@.+\..+$/;function w(t){const e={...t};for(const s of[...Pc,"created_by"])s in e&&delete e[s];return e}const C=I(t=>t.uuid),Ic=C.getInitialState({}),Yt=d.createSlice({name:"agents",initialState:Ic,extraReducers:t=>t.addMatcher(d.isAnyOf(F,M,O),e=>Object.assign(e,Ic)),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:Oc,addConversation:_c,addConversations:Nm,setConversation:Rc,setConversations:Hm,updateConversation:vc,updateConversations:Wm,deleteConversation:Km,deleteConversations:Ym}=Yt.actions,Jt=t=>t.agentsReducer.instances,Jm=d.createSelector([Jt],t=>Object.values(t)),Zm=f(d.createSelector([Jt,(t,e)=>e],(t,e)=>t[e])),wc=Yt.reducer,k=I(t=>t.uuid),Mc=k.getInitialState({}),Zt=d.createSlice({name:"assetAttachments",initialState:Mc,extraReducers:t=>t.addMatcher(d.isAnyOf(F,M,O),e=>Object.assign(e,Mc)),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:Xm,addAssetAttachments:Qt,setAssetAttachment:Ec,setAssetAttachments:Qm,updateAssetAttachment:xm,updateAssetAttachments:jc,deleteAssetAttachment:qc,deleteAssetAttachments:xt}=Zt.actions,Vc=t=>t.assetAttachmentReducer.instances,zc=d.createSelector([Vc],t=>Object.values(t)),Uc=t=>e=>e.assetAttachmentReducer.instances[t],Dc=f(d.createSelector([zc,(t,e)=>e],(t,e)=>g(t.filter(({asset:s})=>e===s)))),Cc=Zt.reducer,B=I(t=>t.uuid),kc=B.getInitialState({}),es=d.createSlice({name:"assetProcedureAttachments",initialState:kc,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,kc)),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:Bc,addAssetProcedureAttachment:ep,addAssetProcedureAttachments:$c,setAssetProcedureAttachment:Gc,setAssetProcedureAttachments:tp,updateAssetProcedureAttachment:sp,updateAssetProcedureAttachments:Lc,deleteAssetProcedureAttachment:Nc,deleteAssetProcedureAttachments:Hc}=es.actions,Wc=t=>t.assetProcedureAttachmentReducer.instances,Kc=d.createSelector([Wc],t=>Object.values(t)),Yc=t=>e=>e.assetProcedureAttachmentReducer.instances[t],ap=f(d.createSelector([Kc,(t,e)=>e],(t,e)=>g(t.filter(({asset_procedure:s})=>e===s)))),Jc=es.reducer,$=I(t=>t.uuid),Zc=$.getInitialState({}),ts=d.createSlice({name:"assetProcedureFieldsAttachments",initialState:Zc,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,Zc)),reducers:{initializeAssetProcedureFieldsAttachments:$.initialize,addAssetProcedureFieldsAttachment:$.addOne,addAssetProcedureFieldsAttachments:$.addMany,setAssetProcedureFieldsAttachment:$.setOne,setAssetProcedureFieldsAttachments:$.setMany,updateAssetProcedureFieldsAttachment:$.updateOne,updateAssetProcedureFieldsAttachments:$.updateMany,deleteAssetProcedureFieldsAttachment:$.deleteOne,deleteAssetProcedureFieldsAttachments:$.deleteMany}}),{initializeAssetProcedureFieldsAttachments:Xc,addAssetProcedureFieldsAttachment:ip,addAssetProcedureFieldsAttachments:Qc,setAssetProcedureFieldsAttachment:cp,setAssetProcedureFieldsAttachments:np,updateAssetProcedureFieldsAttachment:rp,updateAssetProcedureFieldsAttachments:xc,deleteAssetProcedureFieldsAttachment:dp,deleteAssetProcedureFieldsAttachments:en}=ts.actions,tn=t=>t.assetProcedureFieldsAttachmentReducer.instances,sn=d.createSelector([tn],t=>Object.values(t)),up=f(d.createSelector([sn,(t,e)=>e],(t,e)=>g(t.filter(s=>s.fields_revision===e)))),op=t=>e=>e.assetProcedureFieldsAttachmentReducer.instances[t],an=ts.reducer,G=I(t=>t.uuid),cn=G.getInitialState({}),ss=d.createSlice({name:"assetProcedureFields",initialState:cn,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,cn)),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:nn,addAssetProcedureFields:rn,addAssetProcedureFieldsMany:lp,setAssetProcedureFields:hp,setAssetProcedureFieldsMany:mp,updateAssetProcedureFields:dn,updateAssetProcedureFieldsMany:pp,deleteAssetProcedureFields:un,deleteAssetProcedureFieldsMany:Ap}=ss.actions,on=t=>t.assetProcedureFieldsReducer.instances,as=d.createSelector([on],t=>Object.values(t)),yp=f(d.createSelector([as,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_procedure===e)))),fp=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])),Sp=t=>e=>e.assetProcedureFieldsReducer.instances[t],ln=ss.reducer,L=I(t=>t.uuid),hn=L.getInitialState({}),is=d.createSlice({name:"assetProcedureFieldValuesAttachments",initialState:hn,extraReducers:t=>t.addMatcher(d.isAnyOf(F,M,O),e=>Object.assign(e,hn)),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:mn,addAssetProcedureFieldValuesAttachment:gp,addAssetProcedureFieldValuesAttachments:mt,setAssetProcedureFieldValuesAttachment:bp,setAssetProcedureFieldValuesAttachments:Pp,updateAssetProcedureFieldValuesAttachment:Fp,updateAssetProcedureFieldValuesAttachments:pn,deleteAssetProcedureFieldValuesAttachment:Tp,deleteAssetProcedureFieldValuesAttachments:pt}=is.actions,cs=t=>t.assetProcedureFieldValuesAttachmentReducer.instances,An=d.createSelector([cs],t=>Object.values(t)),Ip=t=>e=>e.assetProcedureFieldValuesAttachmentReducer.instances[t],yn=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)))})),fn=f(d.createSelector([An,(t,e)=>e],(t,e)=>g(t.filter(s=>s.field_values===e)))),Sn=is.reducer,N=I(t=>t.uuid),gn=N.getInitialState({}),ns=d.createSlice({name:"assetProcedureFieldValues",initialState:gn,extraReducers:t=>t.addMatcher(d.isAnyOf(F,M,O),e=>Object.assign(e,gn)),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:bn,addAssetProcedureFieldValues:rs,addAssetProcedureFieldValuesMany:Pn,setAssetProcedureFieldValues:Op,setAssetProcedureFieldValuesMany:_p,updateAssetProcedureFieldValues:Ze,updateAssetProcedureFieldValuesMany:Fn,deleteAssetProcedureFieldValues:ds,deleteAssetProcedureFieldValuesMany:Tn}=ns.actions,In=t=>t.assetProcedureFieldValuesReducer.instances,us=d.createSelector([In],t=>Object.values(t)),Rp=f(d.createSelector([us,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset===e)))),vp=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],On=ns.reducer,H=I(t=>t.uuid),_n=H.getInitialState({}),ls=d.createSlice({name:"assetProcedureInstances",initialState:_n,extraReducers:t=>t.addMatcher(d.isAnyOf(F,M,O),e=>Object.assign(e,_n)),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:Rn,addAssetProcedureInstance:hs,addAssetProcedureInstances:vn,updateAssetProcedureInstance:Xe,updateAssetProcedureInstances:wp,deleteAssetProcedureInstance:ms,deleteAssetProcedureInstances:wn,setAssetProcedureInstance:Mp,setAssetProcedureInstances:Ep}=ls.actions,ps=t=>t.assetProcedureInstanceReducer.instances,As=d.createSelector([ps],t=>Object.values(t)),Mn=f(d.createSelector([As,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_procedure===e)))),jp=f(d.createSelector([As,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_type===e)))),ys=t=>e=>e.assetProcedureInstanceReducer.instances[t],qp=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)})),En=ls.reducer,W=I(t=>t.uuid),jn=W.getInitialState({}),fs=d.createSlice({name:"assetProcedures",initialState:jn,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,jn)),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:qn,addAssetProcedure:Ss,addAssetProcedures:Vp,updateAssetProcedure:Qe,updateAssetProcedures:zp,deleteAssetProcedure:gs,deleteAssetProcedures:Up,setAssetProcedure:Dp,setAssetProcedures:Cp}=fs.actions,bs=t=>t.assetProcedureReducer.instances,Vn=d.createSelector([bs],t=>Object.values(t)),Ps=t=>e=>e.assetProcedureReducer.instances[t],kp=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)})),Bp=f(d.createSelector([Vn,(t,e)=>e],(t,e)=>g(t.filter(s=>s.organization===e)))),zn=fs.reducer,K=I(t=>t.uuid),Un=K.getInitialState({}),Fs=d.createSlice({name:"assetProcedureStepFieldsAttachments",initialState:Un,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,Un)),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:Dn,addAssetProcedureStepFieldsAttachment:$p,addAssetProcedureStepFieldsAttachments:Cn,setAssetProcedureStepFieldsAttachment:Gp,setAssetProcedureStepFieldsAttachments:Lp,updateAssetProcedureStepFieldsAttachment:Np,updateAssetProcedureStepFieldsAttachments:kn,deleteAssetProcedureStepFieldsAttachment:Hp,deleteAssetProcedureStepFieldsAttachments:Bn}=Fs.actions,$n=t=>t.assetProcedureStepFieldsAttachmentReducer.instances,Gn=d.createSelector([$n],t=>Object.values(t)),Wp=f(d.createSelector([Gn,(t,e)=>e],(t,e)=>g(t.filter(s=>s.fields_revision===e)))),Kp=t=>e=>e.assetProcedureStepFieldsAttachmentReducer.instances[t],Ln=Fs.reducer,Y=I(t=>t.uuid),Nn=Y.getInitialState({}),Ts=d.createSlice({name:"assetProcedureStepFields",initialState:Nn,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,Nn)),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:Hn,addAssetProcedureStepFields:Is,addAssetProcedureStepFieldsMany:Yp,setAssetProcedureStepFields:Jp,setAssetProcedureStepFieldsMany:Zp,updateAssetProcedureStepFields:xe,updateAssetProcedureStepFieldsMany:Xp,deleteAssetProcedureStepFields:Os,deleteAssetProcedureStepFieldsMany:Qp}=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)))),eA=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])),tA=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}),sA=t=>e=>e.assetProcedureStepFieldsReducer.instances[t],Wn=Ts.reducer,J=I(t=>t.uuid),Kn=J.getInitialState({}),vs=d.createSlice({name:"assetProcedureStepFieldValuesAttachments",initialState:Kn,extraReducers:t=>t.addMatcher(d.isAnyOf(F,M,O),e=>Object.assign(e,Kn)),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:Yn,addAssetProcedureStepFieldValuesAttachment:aA,addAssetProcedureStepFieldValuesAttachments:At,setAssetProcedureStepFieldValuesAttachment:iA,setAssetProcedureStepFieldValuesAttachments:cA,updateAssetProcedureStepFieldValuesAttachment:nA,updateAssetProcedureStepFieldValuesAttachments:Jn,deleteAssetProcedureStepFieldValuesAttachment:rA,deleteAssetProcedureStepFieldValuesAttachments:yt}=vs.actions,ws=t=>t.assetProcedureStepFieldValuesAttachmentReducer.instances,Zn=d.createSelector([ws],t=>Object.values(t)),dA=t=>e=>e.assetProcedureStepFieldValuesAttachmentReducer.instances[t],Xn=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)))})),Qn=f(d.createSelector([Zn,(t,e)=>e],(t,e)=>g(t.filter(s=>s.field_values===e)))),xn=vs.reducer,Z=I(t=>t.uuid),er=Z.getInitialState({}),Ms=d.createSlice({name:"assetProcedureStepFieldValues",initialState:er,extraReducers:t=>t.addMatcher(d.isAnyOf(F,M,O),e=>Object.assign(e,er)),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:tr,addAssetProcedureStepFieldValues:Es,addAssetProcedureStepFieldValuesMany:sr,setAssetProcedureStepFieldValues:uA,setAssetProcedureStepFieldValuesMany:oA,updateAssetProcedureStepFieldValues:et,updateAssetProcedureStepFieldValuesMany:ar,deleteAssetProcedureStepFieldValues:js,deleteAssetProcedureStepFieldValuesMany:ir}=Ms.actions,cr=t=>t.assetProcedureStepFieldValuesReducer.instances,ft=d.createSelector([cr],t=>Object.values(t)),lA=f(d.createSelector([ft,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset===e)))),hA=f(d.createSelector([ft,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_procedure_instance===e)))),mA=f(d.createSelector([ft,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_procedure_step===e)))),qs=t=>e=>e.assetProcedureStepFieldValuesReducer.instances[t],nr=Ms.reducer,X=I(t=>t.uuid),rr=X.getInitialState({}),Vs=d.createSlice({name:"assetProcedureSteps",initialState:rr,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,rr)),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:dr,setAssetProcedureStep:ur,setAssetProcedureSteps:pA,addAssetProcedureStep:zs,addAssetProcedureSteps:AA,updateAssetProcedureStep:St,updateAssetProcedureSteps:yA,deleteAssetProcedureStep:Us,deleteAssetProcedureSteps:fA}=Vs.actions,or=Vs.reducer,gt=t=>t.assetProcedureStepReducer.instances,Ds=t=>e=>e.assetProcedureStepReducer.instances[t],lr=d.createSelector([gt],t=>Object.values(t)),SA=f(d.createSelector([gt,(t,e)=>e],(t,e)=>{const s={};for(const[i,c]of Object.entries(t))c.asset_procedure===e&&(s[i]=c);return ht(s)})),gA=f(d.createSelector([lr,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_procedure===e)))),bA=f(d.createSelector([gt,(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),hr=Q.getInitialState({}),Cs=d.createSlice({name:"assets",initialState:hr,extraReducers:t=>t.addMatcher(d.isAnyOf(F,M,O),e=>Object.assign(e,hr)),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:mr,addAsset:ks,addAssets:bt,updateAsset:tt,updateAssets:PA,deleteAsset:Bs,deleteAssets:$s,setAsset:FA,setAssets:TA}=Cs.actions,Gs=t=>t.assetReducer.instances,pr=d.createSelector([Gs],t=>g(Object.values(t))),Ls=f(d.createSelector([pr,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_type===e)))),Ns=t=>e=>e.assetReducer.instances[t],Ar=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)})),IA=t=>e=>Ls(t)(e).length,yr=Cs.reducer,x=I(t=>t.uuid),fr=x.getInitialState({}),Hs=d.createSlice({name:"assetStageCompletions",initialState:fr,extraReducers:t=>t.addMatcher(d.isAnyOf(F,M,O),e=>Object.assign(e,fr)),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:Sr,addAssetStageCompletion:Ws,addAssetStageCompletions:Ks,setAssetStageCompletion:OA,setAssetStageCompletions:_A,updateAssetStageCompletion:gr,updateAssetStageCompletions:br,deleteAssetStageCompletion:Ys,deleteAssetStageCompletions:Js}=Hs.actions,Pr=Hs.reducer,Zs=t=>t.assetStageCompletionReducer.instances,RA=d.createSelector([Zs],t=>Object.values(t)),Fr=t=>e=>e.assetStageCompletionReducer.instances[t],Tr=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),Ir=ee.getInitialState({}),Xs=d.createSlice({name:"assetStages",initialState:Ir,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,Ir)),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:Or,setAssetStage:_r,setAssetStages:vA,addAssetStage:Qs,addAssetStages:wA,updateAssetStage:Pt,updateAssetStages:MA,deleteAssetStage:xs,deleteAssetStages:EA}=Xs.actions,Rr=Xs.reducer,Ft=t=>t.assetStageReducer.instances,ea=t=>e=>e.assetStageReducer.instances[t],vr=d.createSelector([Ft],t=>Object.values(t)),jA=f(d.createSelector([Ft,(t,e)=>e],(t,e)=>{const s={};for(const[i,c]of Object.entries(t))c.asset_procedure===e&&(s[i]=c);return ht(s)})),qA=f(d.createSelector([vr,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_procedure===e)))),VA=f(d.createSelector([Ft,(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),wr=te.getInitialState({}),ta=d.createSlice({name:"assetTypeAttachments",initialState:wr,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,wr)),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:Mr,addAssetTypeAttachment:zA,addAssetTypeAttachments:sa,setAssetTypeAttachment:Er,setAssetTypeAttachments:UA,updateAssetTypeAttachment:DA,updateAssetTypeAttachments:jr,deleteAssetTypeAttachment:qr,deleteAssetTypeAttachments:aa}=ta.actions,Vr=t=>t.assetTypeAttachmentReducer.instances,zr=d.createSelector([Vr],t=>Object.values(t)),Ur=t=>e=>e.assetTypeAttachmentReducer.instances[t],Dr=f(d.createSelector([zr,(t,e)=>e],(t,e)=>g(t.filter(({asset_type:s})=>e===s)))),Cr=ta.reducer,se=I(t=>t.uuid),kr=se.getInitialState({}),ia=d.createSlice({name:"assetTypeFieldsAttachments",initialState:kr,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,kr)),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:Br,addAssetTypeFieldsAttachment:CA,addAssetTypeFieldsAttachments:$r,setAssetTypeFieldsAttachment:kA,setAssetTypeFieldsAttachments:BA,updateAssetTypeFieldsAttachment:$A,updateAssetTypeFieldsAttachments:Gr,deleteAssetTypeFieldsAttachment:GA,deleteAssetTypeFieldsAttachments:Lr}=ia.actions,Nr=t=>t.assetTypeFieldsAttachmentReducer.instances,Hr=d.createSelector([Nr],t=>Object.values(t)),LA=f(d.createSelector([Hr,(t,e)=>e],(t,e)=>g(t.filter(s=>s.fields_revision===e)))),NA=t=>e=>e.assetTypeFieldsAttachmentReducer.instances[t],Wr=ia.reducer,ae=I(t=>t.uuid),Kr=ae.getInitialState({}),ca=d.createSlice({name:"assetTypeFields",initialState:Kr,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,Kr)),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:Yr,addAssetTypeFields:Jr,addAssetTypeFieldsMany:HA,setAssetTypeFields:WA,setAssetTypeFieldsMany:KA,updateAssetTypeFields:Zr,updateAssetTypeFieldsMany:YA,deleteAssetTypeFields:Xr,deleteAssetTypeFieldsMany:JA}=ca.actions,Qr=t=>t.assetTypeFieldsReducer.instances,Tt=d.createSelector([Qr],t=>Object.values(t)),ZA=f(d.createSelector([Tt,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_type===e)))),XA=f(d.createSelector([Tt,(t,e)=>e],(t,e)=>t.filter(s=>s.asset_type===e).sort((s,i)=>s.submitted_at>i.submitted_at?-1:1)[0])),QA=t=>e=>e.assetTypeFieldsReducer.instances[t],xr=ca.reducer,ie=I(t=>t.uuid),ed=ie.getInitialState({}),na=d.createSlice({name:"assetTypeFieldValuesAttachments",initialState:ed,extraReducers:t=>t.addMatcher(d.isAnyOf(F,M,O),e=>Object.assign(e,ed)),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:td,addAssetTypeFieldValuesAttachment:xA,addAssetTypeFieldValuesAttachments:It,setAssetTypeFieldValuesAttachment:ey,setAssetTypeFieldValuesAttachments:ty,updateAssetTypeFieldValuesAttachment:sy,updateAssetTypeFieldValuesAttachments:sd,deleteAssetTypeFieldValuesAttachment:ay,deleteAssetTypeFieldValuesAttachments:Ot}=na.actions,ra=t=>t.assetTypeFieldValuesAttachmentReducer.instances,ad=d.createSelector([ra],t=>Object.values(t)),iy=t=>e=>e.assetTypeFieldValuesAttachmentReducer.instances[t],id=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)))})),cd=f(d.createSelector([ad,(t,e)=>e],(t,e)=>g(t.filter(s=>s.field_values===e)))),nd=na.reducer,ce=I(t=>t.uuid),rd=ce.getInitialState({}),da=d.createSlice({name:"assetTypeFieldValues",initialState:rd,extraReducers:t=>t.addMatcher(d.isAnyOf(F,M,O),e=>Object.assign(e,rd)),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:dd,addAssetTypeFieldValues:ua,addAssetTypeFieldValuesMany:ud,setAssetTypeFieldValues:cy,setAssetTypeFieldValuesMany:ny,updateAssetTypeFieldValues:st,updateAssetTypeFieldValuesMany:od,deleteAssetTypeFieldValues:oa,deleteAssetTypeFieldValuesMany:ld}=da.actions,hd=t=>t.assetTypeFieldValuesReducer.instances,la=d.createSelector([hd],t=>Object.values(t)),ry=f(d.createSelector([la,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset===e)))),dy=f(d.createSelector([Tt,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],md=da.reducer,ne=I(t=>t.uuid),pd=ne.getInitialState({}),ma=d.createSlice({name:"assetTypes",initialState:pd,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,pd)),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:Ad,setAssetType:uy,setAssetTypes:oy,addAssetType:pa,addAssetTypes:ly,updateAssetType:at,updateAssetTypes:hy,deleteAssetType:Aa,deleteAssetTypes:my}=ma.actions,ya=t=>t.assetTypeReducer.instances,yd=d.createSelector([ya],t=>Object.values(t)),fa=t=>e=>e.assetTypeReducer.instances[t],py=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)})),Ay=f(d.createSelector([yd,(t,e)=>e],(t,e)=>g(t.filter(s=>s.organization===e)))),fd=ma.reducer,Sd={accessToken:"",refreshToken:"",isLoggedIn:!1},_t=d.createSlice({name:"auth",initialState:Sd,extraReducers:t=>t.addCase(F,e=>Object.assign(e,Sd)),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||_t.caseReducers.clearTokens(t),t.isLoggedIn=e.payload}}}),{setTokens:yy,clearTokens:fy,setLoggedIn:gd}=_t.actions,Sy=t=>t.authReducer.accessToken,gy=t=>t.authReducer.isLoggedIn,bd=_t.reducer,re=I(t=>t.uuid),Pd=re.getInitialState({}),Sa=d.createSlice({name:"categories",initialState:Pd,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,Pd)),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:Fd,addCategory:ga,addCategories:by,setCategory:Py,setCategories:Fy,updateCategory:Td,updateCategories:Ty,deleteCategory:Id,deleteCategories:Iy}=Sa.actions,ba=t=>t.categoryReducer.instances,Od=d.createSelector([ba],t=>Object.values(t)),Pa=t=>e=>e.categoryReducer.instances[t],Oy=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)})),_y=f(d.createSelector([Od,(t,e)=>e],(t,e)=>g(t.filter(s=>s.project===e)))),_d=Sa.reducer,de=I(t=>t.uuid),Rd=de.getInitialState({}),Fa=d.createSlice({name:"documentAttachments",initialState:Rd,extraReducers:t=>t.addCase(F,e=>Object.assign(e,Rd)),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:vd,addDocumentAttachment:Ry,addDocumentAttachments:wd,setDocumentAttachment:Md,setDocumentAttachments:vy,updateDocumentAttachment:wy,updateDocumentAttachments:Ed,deleteDocumentAttachment:jd,deleteDocumentAttachments:qd}=Fa.actions,Vd=t=>t.documentAttachmentReducer.instances,zd=d.createSelector([Vd],t=>Object.values(t)),Ud=t=>e=>e.documentAttachmentReducer.instances[t],My=f(d.createSelector([zd,(t,e)=>e],(t,e)=>g(t.filter(({document:s})=>e===s)))),Dd=Fa.reducer,Cd={documents:{}},Ta=d.createSlice({name:"documents",initialState:Cd,extraReducers:t=>t.addCase(F,e=>{Object.assign(e,Cd)}),reducers:{setDocuments:(t,e)=>{if(e.payload.filter(Tc).length!==e.payload.length)throw new Error("Tried to use setIssues reducer with duplicate ID's");t.documents=Fc(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}}},moveDocument:(t,e)=>{const{documentId:s,targetDocumentId:i,position:c}=e.payload;if(!(s in t.documents))throw new Error(`attempting to move a document with uuid ${s} which doesn't exist in state.documents`);const n=t.documents[s];if(n.parent_document&&t.documents[n.parent_document]){const{children_documents:r}=t.documents[n.parent_document];t.documents[n.parent_document].children_documents.splice(r.indexOf(n.uuid),1)}if(i){const r=t.documents[i],o=r!=null&&r.parent_document?t.documents[r.parent_document]:null;switch(c){case"left":if(!o)throw new Error("attempting to move a document to the left of a document with no parent_document");t.documents[r.parent_document].children_documents.splice(o.children_documents.indexOf(r.uuid),0,n.uuid),t.documents[s].parent_document=o.uuid;break;case"right":if(!o)throw new Error("attempting to move a document to the left of a document with no parent_document");t.documents[r.parent_document].children_documents.splice(o.children_documents.indexOf(r.uuid)+1,0,n.uuid),t.documents[s].parent_document=o.uuid;break;case"left-child":if(!r)throw new Error("attempting to move a document to the left-child of a document that doesn't exist");t.documents[i].children_documents.unshift(n.uuid),t.documents[s].parent_document=r.uuid;break;case"right-child":if(!r)throw new Error("attempting to move a document to the left-child of a document that doesn't exist");t.documents[i].children_documents.push(n.uuid),t.documents[s].parent_document=r.uuid}}else t.documents[s].parent_document=null},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:kd,addDocuments:Bd,updateDocuments:Ce,moveDocument:$d,removeDocuments:Ia}=Ta.actions,We=t=>t.documentsReducer.documents,Gd=d.createSelector([We],t=>Object.values(t)),Ld=t=>e=>e.documentsReducer.documents[t],Ey=f(d.createSelector([We,(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)})),jy=f(d.createSelector([We,(t,e)=>e],(t,e)=>{const s=[],i=t[e];if(!i||!i.parent_document)return s;let c=t[i.parent_document];for(;c;)s.push(c.uuid),c=t[c.parent_document??""];return g(s)})),qy=d.createSelector([Gd],t=>g(t.filter(e=>!e.parent_document))),Nd=Ta.reducer,ue=I(t=>t.uuid),Hd=ue.getInitialState({}),Oa=d.createSlice({name:"emailDomains",initialState:Hd,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,Hd)),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:Wd,addEmailDomain:Kd,addEmailDomains:Vy,setEmailDomain:zy,setEmailDomains:Uy,updateEmailDomain:Dy,updateEmailDomains:Cy,deleteEmailDomain:Yd,deleteEmailDomains:ky}=Oa.actions,Jd=t=>t.emailDomainsReducer.instances,Zd=d.createSelector([Jd],t=>Object.values(t)),By=f(d.createSelector([Zd,(t,e)=>e],(t,e)=>g(t.filter(s=>s.organization===e)))),Xd=Oa.reducer,Qd={s3Urls:{}},xd=1e3*60*60,$y=xd*24*7,_a=d.createSlice({name:"file",initialState:Qd,extraReducers:t=>t.addCase(F,e=>Object.assign(e,Qd)),reducers:{setUploadUrl:(t,e)=>{const{url:s,fields:i,sha1:c}=e.payload,n=new Date,r=new Date(n.getTime()+$y);t.s3Urls[c]={url:s,fields:i,exp:r.getTime()}}}}),{setUploadUrl:eu}=_a.actions,tu=t=>e=>{const s=e.fileReducer.s3Urls[t];if(!s)return;const i=new Date().getTime();if(!((s.exp??i)-i<xd))return s},su=_a.reducer,oe=I(t=>t.uuid),au=oe.getInitialState({}),Ra=d.createSlice({name:"formRevisionAttachments",initialState:au,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,au)),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:iu,addFormRevisionAttachment:Gy,addFormRevisionAttachments:cu,setFormRevisionAttachment:Ly,setFormRevisionAttachments:Ny,updateFormRevisionAttachment:Hy,updateFormRevisionAttachments:nu,deleteFormRevisionAttachment:Wy,deleteFormRevisionAttachments:ru}=Ra.actions,du=t=>t.formRevisionAttachmentReducer.instances,Ky=f(d.createSelector([du,(t,e)=>e],(t,e)=>g(Object.values(t).filter(s=>s.form_revision===e)))),uu=Ra.reducer,Yy=(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),ou=le.getInitialState({}),va=d.createSlice({name:"formRevisions",initialState:ou,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,ou)),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:lu,addFormRevision:wa,addFormRevisions:hu,setFormRevision:mu,setFormRevisions:Jy,updateFormRevision:Zy,updateFormRevisions:Xy,deleteFormRevision:Ma,deleteFormRevisions:pu}=va.actions,Rt=t=>t.formRevisionReducer.instances,Au=d.createSelector([Rt],t=>Object.values(t)),Qy=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(Yy)[s.length-1];return t[c.uuid]})),yu=f(d.createSelector([Au,(t,e)=>e],(t,e)=>g(t.filter(s=>s.form===e)))),fu=va.reducer,he=I(t=>t.uuid),Su=he.getInitialState({}),Ea=d.createSlice({name:"forms",initialState:Su,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,Su)),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:gu,addForm:ja,addForms:ef,setForm:tf,setForms:sf,updateForm:af,updateForms:cf,deleteForm:qa,deleteForms:nf}=Ea.actions,bu=Ea.reducer,Pu=t=>t.formReducer.instances,Fu=d.createSelector([Pu],t=>Object.values(t)),Tu=t=>e=>e.formReducer.instances[t],rf=f(d.createSelector([Fu,(t,e)=>e],(t,e)=>g(t.filter(s=>s.organization===e)))),me=I(t=>t.uuid),Iu=me.getInitialState({}),Va=d.createSlice({name:"formSubmissionAttachments",initialState:Iu,extraReducers:t=>t.addMatcher(d.isAnyOf(F,M,O),e=>Object.assign(e,Iu)),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:Ou,addFormSubmissionAttachment:df,addFormSubmissionAttachments:vt,setFormSubmissionAttachment:uf,setFormSubmissionAttachments:of,updateFormSubmissionAttachment:lf,updateFormSubmissionAttachments:_u,deleteFormSubmissionAttachment:hf,deleteFormSubmissionAttachments:wt}=Va.actions,za=t=>t.formSubmissionAttachmentReducer.instances,Ru=f(d.createSelector([za,(t,e)=>e],(t,e)=>{const s=new Set(e);return g(Object.values(t).filter(i=>s.has(i.uuid)))})),vu=f(d.createSelector([za,(t,e)=>e],(t,e)=>g(Object.values(t).filter(s=>s.form_submission===e)))),wu=Va.reducer,pe=I(t=>t.uuid),Mu=pe.getInitialState({}),Ua=d.createSlice({name:"formSubmissions",initialState:Mu,extraReducers:t=>t.addMatcher(d.isAnyOf(F,M,O),e=>Object.assign(e,Mu)),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:Eu,setFormSubmission:Mt,setFormSubmissions:mf,addFormSubmission:Da,addFormSubmissions:Et,updateFormSubmission:ju,updateFormSubmissions:pf,deleteFormSubmission:Ca,deleteFormSubmissions:jt}=Ua.actions,ka=t=>t.formSubmissionReducer.instances,Ba=d.createSelector([ka],t=>Object.values(t)),$a=t=>e=>e.formSubmissionReducer.instances[t],qu=f(d.createSelector([ka,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))})),Vu=f(d.createSelector([Ba,(t,e)=>e],(t,e)=>Object.values(t).filter(s=>s.issue===e))),zu=f(d.createSelector([Ba,(t,e)=>e],(t,e)=>t.filter(s=>s.asset===e))),Uu=Ua.reducer,Ae=I(t=>t.uuid),Du=Ae.getInitialState({}),Ga=d.createSlice({name:"geoImages",initialState:Du,extraReducers:t=>t.addMatcher(d.isAnyOf(F,M,O),e=>Object.assign(e,Du)),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:Cu,setGeoImage:it,setGeoImages:ku,addGeoImage:Bu,addGeoImages:$u,updateGeoImage:Gu,updateGeoImages:Af,deleteGeoImage:La,deleteGeoImages:Lu}=Ga.actions,Nu=t=>t.geoImageReducer.instances,Hu=d.createSelector([Nu],t=>Object.values(t)),Na=t=>e=>e.geoImageReducer.instances[t],yf=f(d.createSelector([Hu,(t,e)=>e],(t,e)=>g(t.filter(s=>s.project===e)))),Wu=Ga.reducer,ye=I(t=>t.uuid),Ku=ye.getInitialState({}),Ha=d.createSlice({name:"issueAssociations",initialState:Ku,extraReducers:t=>t.addMatcher(d.isAnyOf(F,M,O),e=>Object.assign(e,Ku)),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:Yu,setIssueAssociations:ff,setIssueAssociation:Sf,updateIssueAssociation:Ju,updateIssueAssociations:gf,addIssueAssociation:Wa,addIssueAssociations:Ka,deleteIssueAssociation:Ya,deleteIssueAssociations:Ja}=Ha.actions,ct=t=>t.issueAssociationReducer.instances,bf=d.createSelector([ct],t=>Object.values(t)),Zu=t=>e=>e.issueAssociationReducer.instances[t],Xu=f(d.createSelector([ct,(t,e)=>e],(t,e)=>g(Object.values(t).filter(s=>s.associated_issue===e)))),Qu=f(d.createSelector([ct,(t,e)=>e],(t,e)=>g(Object.values(t).filter(s=>s.issue===e)))),xu=f(d.createSelector([ct,(t,e)=>e],(t,e)=>g(Object.values(t).filter(s=>s.asset===e)))),eo=Ha.reducer,fe=I(t=>t.uuid),to=fe.getInitialState({}),Za=d.createSlice({name:"issueAttachments",initialState:to,extraReducers:t=>t.addMatcher(d.isAnyOf(F,M,O),e=>Object.assign(e,to)),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:Xa,addIssueAttachment:Pf,addIssueAttachments:Qa,setIssueAttachment:so,setIssueAttachments:Ff,updateIssueAttachment:Tf,updateIssueAttachments:ao,deleteIssueAttachment:io,deleteIssueAttachments:xa}=Za.actions,co=t=>t.issueAttachmentReducer.instances,no=d.createSelector([co],t=>Object.values(t)),ro=f(d.createSelector([no,(t,e)=>e],(t,e)=>g(t.filter(({issue:s})=>e===s)))),uo=t=>e=>e.issueAttachmentReducer.instances[t],oo=Za.reducer,Se=I(t=>t.uuid),lo=Se.getInitialState({}),ei=d.createSlice({name:"issueCommentAttachments",initialState:lo,extraReducers:t=>t.addMatcher(d.isAnyOf(F,M,O),e=>Object.assign(e,lo)),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:ti,addIssueCommentAttachment:If,addIssueCommentAttachments:ho,setIssueCommentAttachment:mo,setIssueCommentAttachments:Of,updateIssueCommentAttachment:_f,updateIssueCommentAttachments:po,deleteIssueCommentAttachment:Ao,deleteIssueCommentAttachments:yo}=ei.actions,fo=t=>t.issueCommentAttachmentReducer.instances,So=d.createSelector([fo],t=>Object.values(t)),go=t=>e=>e.issueCommentAttachmentReducer.instances[t],Rf=f(d.createSelector([So,(t,e)=>e],(t,e)=>g(t.filter(({issue_comment:s})=>e===s)))),bo=ei.reducer,ge=I(t=>t.uuid),Po=ge.getInitialState({}),si=d.createSlice({name:"issueComments",initialState:Po,extraReducers:t=>t.addMatcher(d.isAnyOf(F,M,O),e=>Object.assign(e,Po)),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:vf,addIssueComment:ai,addIssueComments:wf,setIssueComment:ii,setIssueComments:Fo,updateIssueComment:Mf,updateIssueComments:Ef,deleteIssueComment:ci,deleteIssueComments:jf}=si.actions,To=t=>t.issueCommentReducer.instances,ni=t=>e=>e.issueCommentReducer.instances[t],qf=f(d.createSelector([To,(t,e)=>e],(t,e)=>g(Object.values(t).filter(s=>s.issue===e)))),Io=si.reducer,be=I(t=>t.uuid),Oo=be.getInitialState({}),ri=d.createSlice({name:"issues",initialState:Oo,extraReducers:t=>t.addMatcher(d.isAnyOf(F,M,O),e=>Object.assign(e,Oo)),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:_o,addIssue:di,addIssues:Ro,setIssue:Vf,setIssues:zf,updateIssue:qt,updateIssues:Uf,deleteIssue:ui,deleteIssues:vo}=ri.actions,oi=t=>t.issueReducer.instances,Df=d.createSelector([oi],t=>Object.values(t)),li=t=>e=>e.issueReducer.instances[t],Cf=f(d.createSelector([oi,(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)})),wo=ri.reducer,Pe=I(t=>t.uuid),Mo=Pe.getInitialState({}),hi=d.createSlice({name:"issueTypeAttachments",initialState:Mo,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,Mo)),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:mi,addIssueTypeAttachment:kf,addIssueTypeAttachments:Eo,setIssueTypeAttachment:jo,setIssueTypeAttachments:Bf,updateIssueTypeAttachment:$f,updateIssueTypeAttachments:qo,deleteIssueTypeAttachment:Vo,deleteIssueTypeAttachments:zo}=hi.actions,Uo=t=>t.issueTypeAttachmentReducer.instances,Do=d.createSelector([Uo],t=>Object.values(t)),Co=t=>e=>e.issueTypeAttachmentReducer.instances[t],Gf=f(d.createSelector([Do,(t,e)=>e],(t,e)=>g(t.filter(({issue_type:s})=>e===s)))),ko=hi.reducer,Fe=I(t=>t.uuid),Bo=Fe.getInitialState({}),pi=d.createSlice({name:"issueTypeFieldsAttachments",initialState:Bo,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,Bo)),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:$o,addIssueTypeFieldsAttachment:Lf,addIssueTypeFieldsAttachments:Go,setIssueTypeFieldsAttachment:Nf,setIssueTypeFieldsAttachments:Hf,updateIssueTypeFieldsAttachment:Wf,updateIssueTypeFieldsAttachments:Lo,deleteIssueTypeFieldsAttachment:Kf,deleteIssueTypeFieldsAttachments:No}=pi.actions,Ho=t=>t.issueTypeFieldsAttachmentReducer.instances,Wo=d.createSelector([Ho],t=>Object.values(t)),Yf=f(d.createSelector([Wo,(t,e)=>e],(t,e)=>g(t.filter(s=>s.fields_revision===e)))),Jf=t=>e=>e.issueTypeFieldsAttachmentReducer.instances[t],Ko=pi.reducer,Te=I(t=>t.uuid),Yo=Te.getInitialState({}),Ai=d.createSlice({name:"issueTypeFieldValues",initialState:Yo,extraReducers:t=>t.addMatcher(d.isAnyOf(F,M,O),e=>Object.assign(e,Yo)),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:Jo,addIssueTypeFieldValues:yi,addIssueTypeFieldValuesMany:Zf,setIssueTypeFieldValues:Xf,setIssueTypeFieldValuesMany:Qf,updateIssueTypeFieldValues:nt,updateIssueTypeFieldValuesMany:xf,deleteIssueTypeFieldValues:fi,deleteIssueTypeFieldValuesMany:eS}=Ai.actions,Zo=t=>t.issueTypeFieldValuesReducer.instances,Si=d.createSelector([Zo],t=>Object.values(t)),tS=f(d.createSelector([Si,(t,e)=>e],(t,e)=>g(t.filter(s=>s.issue===e)))),gi=t=>e=>e.issueTypeFieldValuesReducer.instances[t],Xo=Ai.reducer,Ie=I(t=>t.uuid),Qo=Ie.getInitialState({}),bi=d.createSlice({name:"issueTypeFields",initialState:Qo,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,Qo)),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:xo,addIssueTypeFields:el,addIssueTypeFieldsMany:sS,setIssueTypeFields:aS,setIssueTypeFieldsMany:iS,updateIssueTypeFields:tl,updateIssueTypeFieldsMany:cS,deleteIssueTypeFields:sl,deleteIssueTypeFieldsMany:nS}=bi.actions,al=t=>t.issueTypeFieldsReducer.instances,Vt=d.createSelector([al],t=>Object.values(t)),rS=f(d.createSelector([Vt,(t,e)=>e],(t,e)=>g(t.filter(s=>s.issue_type===e)))),dS=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])),uS=f(d.createSelector([Vt,Si,(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)))})),oS=t=>e=>e.issueTypeFieldsReducer.instances[t],il=bi.reducer,Oe=I(t=>t.uuid),cl=Oe.getInitialState({}),Pi=d.createSlice({name:"issueTypeFieldValuesAttachments",initialState:cl,extraReducers:t=>t.addMatcher(d.isAnyOf(F,M,O),e=>Object.assign(e,cl)),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:nl,addIssueTypeFieldValuesAttachment:lS,addIssueTypeFieldValuesAttachments:zt,setIssueTypeFieldValuesAttachment:hS,setIssueTypeFieldValuesAttachments:mS,updateIssueTypeFieldValuesAttachment:pS,updateIssueTypeFieldValuesAttachments:rl,deleteIssueTypeFieldValuesAttachment:AS,deleteIssueTypeFieldValuesAttachments:Ut}=Pi.actions,Fi=t=>t.issueTypeFieldValuesAttachmentReducer.instances,dl=d.createSelector([Fi],t=>Object.values(t)),yS=t=>e=>e.issueTypeFieldValuesAttachmentReducer.instances[t],ul=f(d.createSelector([Fi,(t,e)=>e],(t,e)=>{const s=new Set(e);return g(Object.values(t).filter(i=>s.has(i.uuid)))})),ol=f(d.createSelector([dl,(t,e)=>e],(t,e)=>g(t.filter(s=>s.field_values===e)))),ll=Pi.reducer,D=I(t=>t.uuid),hl=D.getInitialState({}),Ti=d.createSlice({name:"issueTypes",initialState:hl,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,hl)),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:ml,addIssueType:pl,addIssueTypes:fS,setIssueType:rt,setIssueTypes:SS,updateIssueType:Al,updateIssueTypes:gS,deleteIssueType:bS,deleteIssueTypes:PS,removeIssueType:Ii}=Ti.actions,yl=t=>t.issueTypeReducer.instances,fl=d.createSelector(yl,t=>Object.values(t)),Oi=t=>e=>e.issueTypeReducer.instances[t],FS=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},TS=f(d.createSelector([fl,(t,e)=>e],(t,e)=>g(t.filter(s=>s.organization===e)))),_i=f(d.createSelector([t=>t.issueReducer.instances,(t,e)=>e],(t,e)=>g(Object.values(t).filter(s=>s.issue_type===e)))),IS=t=>e=>_i(t)(e).length,Sl=Ti.reducer,_e=I(t=>t.uuid),gl=_e.getInitialState({}),Ri=d.createSlice({name:"issueUpdates",initialState:gl,extraReducers:t=>t.addMatcher(d.isAnyOf(F,M,O),e=>Object.assign(e,gl)),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:bl,addIssueUpdate:Pl,addIssueUpdates:Fl,setIssueUpdate:OS,setIssueUpdates:_S,updateIssueUpdate:RS,updateIssueUpdates:vS,deleteIssueUpdate:Tl,deleteIssueUpdates:Il}=Ri.actions,Ol=t=>t.issueUpdateReducer.instances,_l=f(d.createSelector([Ol,(t,e)=>e],(t,e)=>g(Object.values(t).filter(s=>s.issue===e)))),Rl=Ri.reducer,Re=I(t=>t.id),vl=Re.getInitialState({currentUser:null}),vi=d.createSlice({name:"users",initialState:vl,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,vl)),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:wl,setUsers:wS,setUser:MS,addUsers:ES,addUser:Ml,updateUsers:jS,updateUser:qS,deleteUser:El,deleteUsers:VS,setCurrentUser:zS,setProfilePicture:US}=vi.actions,jl=vi.reducer,ql=t=>t.userReducer.currentUser,Dt=t=>t.userReducer.instances,wi=d.createSelector([Dt],t=>Object.values(t)),Vl=t=>e=>e.userReducer.instances[t],DS=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),zl=ve.getInitialState({}),Mi=d.createSlice({name:"organizationAccess",initialState:zl,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,zl)),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:Ul,addOrganizationAccess:Dl,addOrganizationAccesses:CS,setOrganizationAccess:kS,setOrganizationAccesses:BS,updateOrganizationAccess:Ct,updateOrganizationAccesses:$S,deleteOrganizationAccess:Cl,deleteOrganizationAccesses:GS}=Mi.actions,kl=Mi.reducer,Ei=t=>t.organizationAccessReducer.instances,ji=t=>e=>e.organizationAccessReducer.instances[t],LS=d.createSelector([ql,Ei],(t,e)=>Object.values(e).find(i=>i.user===(t==null?void 0:t.id))??null),Bl=d.createSelector([Ei],t=>{const e={};for(const s of Object.values(t))e[s.user]=s;return ht(e)}),NS=f(d.createSelector([Dt,Bl,(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),$l=we.getInitialState({}),qi=d.createSlice({name:"organizations",initialState:$l,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,$l)),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:Gl,setOrganizations:HS,setOrganization:WS,addOrganizations:KS,addOrganization:Ll,updateOrganizations:YS,updateOrganization:Nl,deleteOrganization:JS,deleteOrganizations:ZS}=qi.actions,Hl=t=>t.organizationReducer.instances,XS=d.createSelector([Hl],t=>Object.values(t)),QS=t=>e=>e.organizationReducer.instances[t],Wl=qi.reducer,Kl=(t,e,s)=>{const i=t.uuid?t:{...t,uuid:Ne.v4()};return{payload:i,type:"",meta:{offline:{effect:{timestamp:new Date().toISOString(),request:i,BASE_URL:e,serviceName:s}}}}},Yl={deletedRequests:[],latestRetryTime:0},Vi=d.createSlice({name:"outbox",initialState:Yl,extraReducers:t=>t.addCase(F,e=>Object.assign(e,Yl)),reducers:{enqueueRequest:{reducer:(t,e)=>t,prepare:t=>{console.debug("Preparing to enqueue request",t);const{BASE_URL:e,serviceName:s,...i}=t;return Kl(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,eg=t=>t.outboxReducer.latestRetryTime,{enqueueRequest:Jl,markForDeletion:tg,markAsDeleted:Zl,_setLatestRetryTime:Xl}=Vi.actions,Ql=Vi.reducer,Me=I(t=>t.uuid),xl=Me.getInitialState({}),zi=d.createSlice({name:"projectAccess",initialState:xl,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,xl)),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:eh,addProjectAccess:Ui,addProjectAccesses:th,setProjectAccess:sg,setProjectAccesses:ag,updateProjectAccess:dt,updateProjectAccesses:ig,deleteProjectAccess:Di,deleteProjectAccesses:sh}=zi.actions,ah=zi.reducer,Ci=t=>t.projectAccessReducer.instances,kt=d.createSelector(Ci,t=>Object.values(t)),ki=t=>e=>e.projectAccessReducer.instances[t],ih=f(d.createSelector([Ci,(t,e)=>e],(t,e)=>g(Object.values(t).filter(s=>s.project===e)))),cg=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})),ng=f(d.createSelector([wi,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),ch=Ee.getInitialState({}),Bi=d.createSlice({name:"projectAttachments",initialState:ch,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,ch)),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:nh,addProjectAttachment:rg,addProjectAttachments:rh,setProjectAttachment:dh,setProjectAttachments:uh,updateProjectAttachment:dg,updateProjectAttachments:oh,deleteProjectAttachment:lh,deleteProjectAttachments:$i}=Bi.actions,hh=t=>t.projectAttachmentReducer.instances,mh=d.createSelector([hh],t=>Object.values(t)),ph=t=>e=>e.projectAttachmentReducer.instances[t],Ah=f(d.createSelector([mh,(t,e)=>e],(t,e)=>g(t.filter(({project:s})=>e===s)))),yh=Bi.reducer,je=I(t=>t.uuid),fh=je.getInitialState({activeProjectFileId:null,isImportingProjectFile:!1}),Gi=d.createSlice({name:"projectFiles",initialState:fh,extraReducers:t=>t.addMatcher(d.isAnyOf(F,M,O),e=>Object.assign(e,fh)),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
|
+
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:Sh,setProjectFile:ug,setProjectFiles:og,addProjectFile:lg,addProjectFiles:gh,updateProjectFile:Li,updateProjectFiles:hg,deleteProjectFile:bh,deleteProjectFiles:Ph,setIsImportingProjectFile:Fh,setActiveProjectFileId:Th,saveActiveProjectFileBounds:Ih,resetProjectFileObjectUrls:mg}=Gi.actions,Oh=t=>t.projectFileReducer.instances,_h=d.createSelector([Oh],t=>g(Object.values(t).sort((e,s)=>e.z_index-s.z_index))),pg=t=>e=>e.projectFileReducer.instances[t],Ag=t=>t.projectFileReducer.activeProjectFileId,yg=t=>t.projectFileReducer.isImportingProjectFile,Rh=Gi.reducer,qe=I(t=>t.uuid),vh=qe.getInitialState({}),Ni=d.createSlice({name:"projects",initialState:vh,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,vh)),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:wh,setProjects:fg,setProject:Sg,addProjects:gg,addProject:Hi,updateProjects:bg,updateProject:Mh,deleteProject:Wi,deleteProjects:Pg}=Ni.actions,Eh=Ni.reducer,jh=t=>t.projectReducer.instances,Ki=d.createSelector([jh],t=>g(Object.values(t))),qh=t=>e=>e.projectReducer.instances[t],Fg=f(d.createSelector([Ki,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)))})),Tg=f(d.createSelector([Ki,(t,e)=>e],(t,e)=>g(t.filter(s=>s.organization_owner===e)))),Ig={isRehydrated:!1},Yi=d.createSlice({name:"rehydrated",initialState:Ig,reducers:{setRehydrated:(t,e)=>{t.isRehydrated=e.payload}}}),{setRehydrated:Og}=Yi.actions,_g=t=>t.rehydratedReducer.isRehydrated,Vh=Yi.reducer,Ve=I(t=>t.uuid),zh=Ve.getInitialState({}),Ji=d.createSlice({name:"teamMemberships",initialState:zh,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,zh)),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:Uh,addTeamMembership:Dh,addTeamMemberships:Rg,setTeamMembership:Zi,setTeamMemberships:vg,updateTeamMembership:wg,updateTeamMemberships:Mg,deleteTeamMembership:Xi,deleteTeamMemberships:Eg}=Ji.actions,Ch=Ji.reducer,kh=t=>t.teamMembershipReducer.instances,Qi=d.createSelector([kh],t=>Object.values(t)),Bh=t=>e=>e.teamMembershipReducer.instances[t],jg=f(d.createSelector([Qi,(t,e)=>e],(t,e)=>{const s={};for(const i of t.filter(c=>c.team===e))s[i.user]=i;return s})),qg=f(d.createSelector([wi,Qi,(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),$h=ze.getInitialState({}),xi=d.createSlice({name:"teams",initialState:$h,extraReducers:t=>t.addMatcher(d.isAnyOf(F,O),e=>Object.assign(e,$h)),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:Gh,addTeam:Lh,addTeams:Vg,setTeam:ut,setTeams:zg,updateTeam:Nh,updateTeams:Ug,deleteTeam:ec,deleteTeams:Dg}=xi.actions,tc=t=>t.teamReducer.instances,Hh=d.createSelector([tc],t=>Object.values(t)),sc=t=>e=>e.teamReducer.instances[t],Cg=f(d.createSelector([tc,(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)})),kg=f(d.createSelector([Hh,(t,e)=>e],(t,e)=>g(t.filter(s=>s.organization===e)))),Wh=xi.reducer,Bg={version:0},Kh=d.createSlice({name:"versioning",initialState:Bg,reducers:{}}),Yh=Kh.reducer,ac={outboxReducer:Ql,fileReducer:su,authReducer:bd},$g=d.combineReducers(ac),Jh={...ac,[Je]:Yh,categoryReducer:_d,assetReducer:yr,assetAttachmentReducer:Cc,assetStageCompletionReducer:Pr,assetStageReducer:Rr,assetTypeReducer:fd,assetTypeAttachmentReducer:Cr,issueReducer:wo,issueAttachmentReducer:oo,issueTypeReducer:Sl,issueTypeAttachmentReducer:ko,organizationReducer:Wl,projectReducer:Eh,projectAttachmentReducer:yh,projectAccessReducer:ah,organizationAccessReducer:kl,projectFileReducer:Rh,rehydratedReducer:Vh,formReducer:bu,formRevisionReducer:fu,formRevisionAttachmentReducer:uu,formSubmissionAttachmentReducer:wu,formSubmissionReducer:Uu,userReducer:jl,emailDomainsReducer:Xd,documentsReducer:Nd,documentAttachmentReducer:Dd,teamReducer:Wh,agentsReducer:wc,issueCommentReducer:Io,issueCommentAttachmentReducer:bo,issueUpdateReducer:Rl,geoImageReducer:Wu,issueAssociationReducer:eo,issueTypeFieldsReducer:il,issueTypeFieldValuesReducer:Xo,issueTypeFieldsAttachmentReducer:Ko,issueTypeFieldValuesAttachmentReducer:ll,assetTypeFieldsReducer:xr,assetTypeFieldValuesReducer:md,assetTypeFieldsAttachmentReducer:Wr,assetTypeFieldValuesAttachmentReducer:nd,assetProcedureReducer:zn,assetProcedureInstanceReducer:En,assetProcedureFieldsReducer:ln,assetProcedureFieldValuesReducer:On,assetProcedureFieldsAttachmentReducer:an,assetProcedureFieldValuesAttachmentReducer:Sn,assetProcedureAttachmentReducer:Jc,assetProcedureStepFieldsAttachmentReducer:Ln,assetProcedureStepFieldsReducer:Wn,assetProcedureStepFieldValuesAttachmentReducer:xn,assetProcedureStepFieldValuesReducer:nr,assetProcedureStepReducer:or,teamMembershipReducer:Ch},Gg=d.combineReducers(Jh);let Zh;function Lg(t){Zh=t}function ot(){return Zh}let Xh;function Ng(t){Xh=t}function Hg(){return Xh}const Qh={};class xh{constructor(e){S(this,"client");Qh[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 em=()=>am.length-1,tm=t=>(t[Je]={version:em()},t),sm=()=>tm({}),Wg=t=>(t.outboxReducer&&(t.outboxReducer.deletedRequests=[]),t),Kg=t=>e=>{var s;return e===void 0&&(e={}),((s=e[Je])==null?void 0:s.version)===em()?e:t(e)},am=[tm,sm,sm,Wg],Yg=Object.fromEntries(am.map((t,e)=>[e,Kg(t)]));let ic=null;function Be(){const t=ot();if(!t)return console.warn("Client store not set; cannot get outbox coordinator yet."),null;if(ic)return ic;const e=t.getState().offline.outbox,s=Ye._fromOutbox(e);return ic=s,s}const Jg=t=>{if(t)throw t;const e=ot();e?e.dispatch({type:"rehydrated/setRehydrated",payload:!0}):console.error("Client store not set")},im=(t,e,s)=>{const i=Be();return i?(i.addRequest(e),i.getQueue()):(console.warn("Outbox coordinator not set; cannot enqueue request yet."),[])},cm=(t,e,s)=>{const i=Be();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 Zg(t,e){if(!e.payload)throw new Error("Received empty payload");return cb(e)}const Xg={...oc,effect:Zg,discard:nc,returnPromises:!0,persistCallback:Jg,retry:rb,persistOptions:{storage:pm},queue:{...oc.queue,enqueue:im,dequeue:cm,peek:(...t)=>nb(...t)}},Qg=Am(Yg,Je),xg=d.compose(mm.offline(Xg),Qg);function eb(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 cc(t,e){const s=Qh[t.meta.offline.effect.serviceName];if(!s)throw new Error(`Service ${t.meta.offline.effect.serviceName} not found`);const i=s instanceof v;if(e.store.getState().outboxReducer.deletedRequests.includes(t.payload.uuid))throw new Error("Request was marked for deletion");let n=null;i&&t.payload.checkAuth&&(n=s.auth.prepareAuth());const r={queryParams:"",isAuthNeeded:!0},o=t.meta.offline.effect,{payload:m,headers:u,method:l,queryParams:p,attachmentHash:A,isExternalUrl:y,isAuthNeeded:b,isResponseBlob:P}={...r,...o.request},_=o.request;let R=_.url;const q=A?await e.files.fetchCache(A):void 0;if(A&&!q)throw new Error(`Cannot upload file ${A} because it's not cached.`);!y&&!R.startsWith("http")&&(!R.startsWith("/")&&!R.startsWith("blob:")&&(R="/"+R),R=t.meta.offline.effect.BASE_URL+R);const Ue=V=>{if(A){const De=_.s3url;if(!De)throw new Error(`No S3 URL for file ${A}`);if("warning"in De)throw new Error(`S3 URL warning for file ${A}`);if(!q)throw new Error(`No file for file ${A}`);const lt=De.fields["x-amz-checksum-sha1"];if(!lt)throw new Error(`No checksum for file ${A}`);return V.set("x-amz-checksum-sha1",lt).field({...m,...De.fields}).attach("file",q)}return V.send(m)},gP={[h.GET]:()=>P?Le.get(R.toString()).responseType("blob"):Le.get(R.toString()),[h.POST]:()=>{const V=Le.post(R.toString());return Ue(V)},[h.PATCH]:()=>{const V=Le.patch(R.toString());return Ue(V)},[h.PUT]:()=>{const V=Le.put(R.toString());return Ue(V)},[h.DELETE]:()=>{const V=Le.delete(R.toString());return Ue(V)}}[l];n&&await n;let Ge=gP();b&&i&&(Ge=s.auth.prepareRequest(Ge)),u&&(Ge=Ge.set(u));try{return await Ge.query(p)}catch(V){const De=eb(V),lt=De==null?void 0:De.status;if(i&<===401)return await s.auth.handleUnauthorized(Ge,De),Ge.query(p);throw new U({response:De,innerError:V,discard:rm.includes(lt)})}}class tb{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 nm{constructor(){S(this,"next");this.next=null}then(e){return new tb(this).then(e)}async run(e){if(this.next)return this.next.run(e);{if(console.debug("Middleware finished. Performing request:",e),!ot())throw new Error("Client store not set");const i=Hg();if(!i)throw new Error("Client SDK not set");return cc(e,i)}}}class sb extends nm{async run(e){return super.run(e)}}class ab extends nm{async run(e){return super.run(e)}}const ib=new sb().then(new ab).compile();function cb(t){var e;return(e=ib[0])==null?void 0:e.run(t)}const rm=[400,409,403,404,405,500];function nc(t,e,s=0){var u;if(console.debug("Considering discarding request due to error:",t,`(${typeof t})`,`
|
|
3
3
|
Action:`,e,`
|
|
4
|
-
Retries:`,s),!(t instanceof Error))throw console.error("ENCOUNTERED NON-ERROR ERROR:",t,"(throwing immediately, which may lead to unexpected behavior)"),t;const
|
|
5
|
-
Action:`,e);const p=
|
|
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=ot(),n=i.getState().outboxReducer.deletedRequests,r=e.payload.uuid;function o(){i.dispatch(Zl(r));const l=Be();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&&rm.includes(l)){console.warn("Discarding request due to error:",t,`
|
|
5
|
+
Action:`,e);const p=Be();if(!p)throw new Error("Outbox coordinator not set");p.remove(e.payload.uuid),t.options.discard=!0,o()}}console.debug("Registering a retry for request:",e.payload.uuid);const m=Be();if(!m)throw new Error("Outbox coordinator not set");return m.registerRetry(e.payload.uuid),!1}function nb(t,e,s){var i;return(i=Be())==null?void 0:i.peek()}function rb(t,e){return ot().dispatch(Xl(new Date().getTime())),Ac}const Ke="An unknown error occurred",db=500,dm=["non_field_errors","detail"];function ub(t,e){let s;if(t!=null&&t.body)if(typeof t.body=="object"){const i=t.body;if(typeof i.error=="string")s=i.error;else if(typeof i.message=="string")s=i.message;else try{s=Object.entries(i).map(([c,n])=>typeof n=="string"?dm.includes(c)?n:`${c}: ${n}`:Array.isArray(n)?dm.includes(c)?n.join(`
|
|
6
6
|
`):n.map(r=>`${c}: ${r}`).join(`
|
|
7
7
|
`):`${c}: ${JSON.stringify(n)}`).join(`
|
|
8
|
-
`)}catch(c){console.error("Failed to extract error message from response body",c)}}else typeof t.body=="string"&&(s=t.body);else t!=null&&t.text?s=t.text:e instanceof Error&&(s=e.message);return!s||s.length>lg?Ge:s}class M extends Error{constructor(s){super(Ge);f(this,"status");f(this,"response");f(this,"message");f(this,"options");const{response:a,innerError:c}=s;this.message=s.message??hg(a,c)??Ge,this.status=(a==null?void 0:a.status)??0,this.response=a,s.discard=s.discard??!1,this.options=s}}class tm extends Hh{clearAuth(){this.dispatch(yd(!1)),this.dispatch({type:dm.RESET_STATE}),this.dispatch({type:lc})}async initAuth(e){}async prepareAuth(){}}class O extends Hh{constructor(s,a){super(s);f(this,"auth");this.auth=a}}class mg extends O{async startConversation(e,s){return this.enqueueRequest({description:"Start agent conversation",method:h.POST,url:"/agents/prompt/",payload:{prompt:e,active_project:s},blockers:["prompt"],blocks:["prompt"]}).then(a=>(this.dispatch(Fc(a)),a))}async continueConversation(e,s,a){return this.enqueueRequest({description:"Prompt agent",method:h.POST,url:"/agents/prompt/",payload:{prompt:e,active_project:a},blockers:["prompt"],blocks:["prompt"],queryParams:{conversation_id:s}}).then(c=>{this.dispatch(Ic(c))})}async fetchDetails(e){return this.enqueueRequest({description:"Get agent conversation",method:h.GET,url:`/agents/conversations/${e}/`,blockers:["conversation"],blocks:["conversation"]}).then(s=>{this.dispatch(Tc(s))})}async rate(e,s){return this.enqueueRequest({description:"Rate agent response",method:h.PUT,url:`/agents/responses/${e}/rate/`,payload:{rating:s},blockers:["rate"],blocks:["rate"]})}async refreshStore(e){const s=await this.enqueueRequest({description:"Get agent conversation history",method:h.GET,url:`/projects/${e}/agent-conversations/`,blockers:["agent-conversations"],blocks:["agent-conversations"]});this.dispatch(Pc(s))}}class w extends O{getNumberOfAttachmentsWithSha1(e){const{issueAttachmentReducer:s,assetAttachmentReducer:a,assetTypeAttachmentReducer:c,documentAttachmentReducer:n,projectAttachmentReducer:r,formRevisionAttachmentReducer:u,formSubmissionAttachmentReducer:m,geoImageReducer:d,assetTypeFieldsAttachmentReducer:o,assetTypeFieldValuesAttachmentReducer:p,issueTypeFieldsAttachmentReducer:A,issueTypeFieldValuesAttachmentReducer:y}=this.client.store.getState();return[].concat(Object.values(s.instances),Object.values(a.instances),Object.values(c.instances),Object.values(n.instances),Object.values(r.instances),Object.values(u.instances),Object.values(m.instances),Object.values(d.instances),Object.values(o.instances),Object.values(p.instances),Object.values(A.instances),Object.values(y.instances)).filter(P=>P.file_sha1===e).length}processPresignedUrls(e){const s={};for(const[a,c]of Object.entries(e))s[a]=this.enqueueRequest({url:c.url,description:"Upload file to S3",method:h.POST,isExternalUrl:!0,isAuthNeeded:!1,attachmentHash:a,blockers:[`s3-${c.fields.key}`],blocks:[a],s3url:c});return s}async getFilePayload(e){const s=await ze(e),a={sha1:s,file_type:e.type,extension:e.name.split(".").pop(),size:e.size};return await this.client.files.addCache(e,s),a}}class Ie extends w{async _bulkAdd(e){var d;const{store:s}=this.client,a=(d=s.getState().userReducer.currentUser)==null?void 0:d.id,c=new Date().toISOString(),n=[],r=[],u={};for(const o of e){const{modelUuid:p,file:A}=o,y=await this.getFilePayload(A);y.sha1 in u||(u[y.sha1]=y);const b=this.buildOfflineAttachment({file:A,file_sha1:y.sha1,submitted_at:c,created_by:a,description:"",modelUuid:p});n.push(b),r.push(this.buildAttachmentPayload({uuid:b.uuid,file_name:b.file_name,file_sha1:b.file_sha1,file_extension:y.extension,description:b.description,modelUuid:p}))}this.dispatch(this.addAttachments(n));const m=this.enqueueRequest({description:`Add ${this.name}`,method:h.POST,url:`${this.url}/bulk/`,payload:{submitted_at:c,attachments:r,files:Object.values(u)},blocks:n.map(o=>o.uuid),blockers:n.map(o=>o.file_sha1)});return m.then(({attachments:o,presigned_urls:p})=>{this.dispatch(this.updateAttachments(o)),this.processPresignedUrls(p)}).catch(()=>{this.dispatch(this.removeAttachments(n.map(o=>o.uuid)))}),[n,m.then(({attachments:o})=>o)]}async _delete(e){const{store:s}=this.client,a=this.selectAttachment(e)(s.getState());if(!a)throw new Error(`Attempting to delete attachment with uuid ${e} that does not exist in the store`);this.dispatch(this.removeAttachment(a.uuid));const c=this.enqueueRequest({description:`Delete ${this.name}`,method:h.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]});return c.then(()=>{this.getNumberOfAttachmentsWithSha1(a.file_sha1)===0&&this.client.files.removeCache(a.file_sha1)}).catch(()=>{this.dispatch(this.setAttachment(a))}),c}}class pg extends Ie{constructor(){super(...arguments);f(this,"name","Asset Attachment");f(this,"url","/asset-attachments");f(this,"initializeAttachments",Zt);f(this,"addAttachments",xt);f(this,"updateAttachments",vc);f(this,"removeAttachments",es);f(this,"removeAttachment",wc);f(this,"setAttachment",_c);f(this,"selectAttachment",jc)}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,asset:s.modelUuid})}buildAttachmentPayload(s){return{...s,asset:s.modelUuid}}async bulkAdd(s){return this._bulkAdd(s.map(a=>({modelUuid:a.assetUuid,file:a.file})))}async delete(s){return this._delete(s)}async refreshStore(s){const a=await this.enqueueRequest({description:"Get asset attachments",method:h.GET,url:`${this.url}/`,queryParams:{project:s},blocks:[],blockers:[]});this.dispatch(Zt(a))}}class Ag extends Ie{constructor(){super(...arguments);f(this,"name","Asset Procedure Attachment");f(this,"url","/asset-procedure-attachments");f(this,"addAttachments",Cc);f(this,"updateAttachments",Uc);f(this,"removeAttachments",Bc);f(this,"removeAttachment",$c);f(this,"setAttachment",Dc);f(this,"selectAttachment",Nc)}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,asset_procedure:s.modelUuid})}buildAttachmentPayload(s){return{...s,asset_procedure:s.modelUuid}}async bulkAdd(s){return this._bulkAdd(s.map(a=>({modelUuid:a.assetProcedureUuid,file:a.file})))}async delete(s){return this._delete(s)}async refreshStore(s){const a=await this.enqueueRequest({description:"Get asset procedure attachments",method:h.GET,url:`${this.url}/`,queryParams:{organization:s},blocks:[],blockers:[]});this.dispatch(zc(a))}}class yg extends w{async bulkAdd(e){var m;const s=new Date().toISOString(),a=(m=this.client.store.getState().userReducer.currentUser)==null?void 0:m.id,c={},n=[],r=[];for(const d of e){const{fieldsRevisionUuid:o,fieldIdentifier:p,file:A}=d,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:a,fields_revision:o,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,fields_revision:o};r.push(P)}this.dispatch(Yc(n));const u=this.enqueueRequest({description:"Add asset procedure fields attachments",method:h.POST,url:"/asset-procedure-fields-attachments/bulk/",payload:{submitted_at:s,attachments:r,files:Object.values(c)},blockers:n.map(d=>d.fields_revision),blocks:n.map(d=>d.uuid)});return u.then(d=>{this.processPresignedUrls(d.presigned_urls),this.dispatch(Jc(d.attachments))}).catch(()=>{this.dispatch(Xc(n.map(d=>d.uuid)))}),[n,u.then(({attachments:d})=>d)]}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset procedure fields attachments",method:h.GET,url:"/asset-procedure-fields-attachments/",queryParams:{organization:e},blockers:[],blocks:[]});this.dispatch(Kc(s))}}class fg extends O{add(e){var u;const{store:s}=this.client,a=(u=s.getState().userReducer.currentUser)==null?void 0:u.id,c=new Date().toISOString(),n=T({...e,created_by:a,submitted_at:c});this.dispatch(sn(n));const r=this.enqueueRequest({description:"Add Asset Procedure Fields",method:h.POST,url:"/asset-procedure-fields/",payload:n,blockers:[n.asset_procedure],blocks:[n.uuid]});return r.then(m=>{this.dispatch(an(m))}).catch(m=>{throw this.dispatch(cn(n.uuid)),m}),[n,r]}async refreshStore(e){const s=await this.enqueueRequest({description:"Get Asset Procedure Fields",method:h.GET,url:"/asset-procedure-fields/",queryParams:{organization:e},blockers:[],blocks:[]});this.dispatch(tn(s))}}function Me(t,e){const s=[];let a=0;const c=t.length;for(;a<c;)s.push(t.slice(a,a+=e));return s}class Sg extends w{async bulkAdd(e,s){var d;const a=new Date().toISOString(),c=(d=this.client.store.getState().userReducer.currentUser)==null?void 0:d.id,n=Me(e,s??e.length),r=[],u=[];for(const o of n){const p={},A=[];for(const y of o){const{fieldValuesUuid:b,fieldIdentifier:P,file:I}=y,R=await this.getFilePayload(I);R.sha1 in p||(p[R.sha1]=R);const E=T({file:URL.createObjectURL(I),file_type:I.type,file_name:I.name,file_sha1:R.sha1,created_by:c,field_values:b,submitted_at:a,field_identifier:P});r.push(E);const ge={uuid:E.uuid,file_name:I.name,file_sha1:R.sha1,file_extension:R.extension,field_identifier:P,field_values:b};A.push(ge)}u.push({submitted_at:a,attachments:A,files:Object.values(p)})}this.dispatch(dt(r));const m=u.map(o=>this.enqueueRequest({description:"Add asset procedure field values attachments",method:h.POST,url:"/asset-procedure-field-values-attachments/bulk/",payload:o,blockers:o.attachments.map(p=>p.field_values),blocks:o.attachments.map(p=>p.uuid)}));return Promise.all(m).then(o=>{for(const A of o)this.processPresignedUrls(A.presigned_urls);const p=o.flatMap(A=>A.attachments);this.dispatch(on(p))}).catch(o=>{throw this.dispatch(ut(r.map(p=>p.uuid))),o}),[r,m.map(o=>o.then(({attachments:p})=>p))]}async bulkDelete(e){const{store:s}=this.client,a=s.getState(),c=hn(e)(a);this.dispatch(ut(e));try{await this.enqueueRequest({description:"Delete asset procedure field values attachments",method:h.DELETE,url:"/asset-procedure-field-values-attachments/bulk/",payload:{attachment_ids:e},blockers:e,blocks:[]})}catch(n){throw this.dispatch(dt(c)),n}}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset procedure field values attachments",method:h.GET,url:"/asset-procedure-field-values-attachments/",queryParams:{project:e},blockers:[],blocks:[]});this.dispatch(un(s))}}class gg extends O{add(e){var r;const{store:s}=this.client,a=s.getState(),c=T({...e,created_by:(r=a.userReducer.currentUser)==null?void 0:r.id,submitted_at:new Date().toISOString()}),n=this.enqueueRequest({description:"Add asset procedure field values",method:h.POST,url:"/asset-procedure-field-values/",payload:_(c),blockers:[e.asset,e.fields_revision,e.asset_procedure_instance],blocks:[c.uuid]});return this.dispatch(ds(c)),n.then(u=>(this.dispatch(We(u)),u)).catch(()=>{this.dispatch(us(c.uuid))}),[c,n]}bulkAdd(e,s){var m;const a=new Date().toISOString(),c=[],n=Me(e.payloads,s??e.payloads.length),r=[];for(const d of n){const o=[];for(const p of d){const A=T({...p,values:p.values,created_by:(m=this.client.store.getState().userReducer.currentUser)==null?void 0:m.id,submitted_at:a});c.push(A),o.push({uuid:A.uuid,asset:p.asset,fields_revision:p.fields_revision,asset_procedure_instance:p.asset_procedure_instance,published_at:p.published_at,values:A.values})}r.push({submitted_at:a,values:e.values,field_values:o})}this.dispatch(fn(c));const u=[];for(const d of r){const o=d.field_values.map(P=>P.asset),p=d.field_values.map(P=>P.fields_revision),A=d.field_values.map(P=>P.asset_procedure_instance),y=d.field_values.map(P=>P.uuid),b=this.enqueueRequest({description:"Bulk add asset procedure field values",method:h.POST,url:"/asset-procedure-field-values/bulk/",payload:d,blockers:[...o,...p,...A],blocks:y});u.push(b)}return Promise.all(u).then(d=>{this.dispatch(Sn(d.flat()))}).catch(()=>{this.dispatch(gn(c.map(d=>d.uuid)))}),[c,u]}update(e){const{store:s}=this.client,a=s.getState(),c=ls(e.uuid)(a);if(!c)throw new Error(`Expected AssetProcedureFieldValues with uuid ${e.uuid} to exist`);const n={...c,...e};this.dispatch(We(n));const r=this.enqueueRequest({description:"Update asset procedure field values",method:h.PATCH,url:`/asset-procedure-field-values/${e.uuid}/`,payload:e,blockers:[n.fields_revision,n.asset,n.asset_procedure_instance],blocks:[n.uuid]});return r.then(u=>{this.dispatch(We(u))}).catch(()=>{this.dispatch(We(c))}),[n,r]}async delete(e){const{store:s}=this.client,a=s.getState(),c=ls(e)(a);if(!c)throw new Error(`Expected submission with uuid ${e} to exist`);const n=mn(e)(a);this.dispatch(us(e)),this.dispatch(ut(n.map(r=>r.uuid)));try{await this.enqueueRequest({description:"Delete asset procedure field values",method:h.DELETE,url:`/asset-procedure-field-values/${e}/`,blockers:[e],blocks:[]})}catch(r){throw this.dispatch(ds(c)),this.dispatch(dt(n)),r}}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset procedure field values",method:h.GET,url:"/asset-procedure-field-values/",queryParams:{project:e},blockers:[],blocks:[]});this.dispatch(yn(s))}}class bg extends O{add(e){var u;const{store:s}=this.client,a=(u=s.getState().userReducer.currentUser)==null?void 0:u.id,c=new Date().toISOString(),n=T({...e,created_by:a,submitted_at:c});this.dispatch(ms(n));const r=this.enqueueRequest({description:"Create asset procedure instance",method:h.POST,url:"/asset-procedure-instances/",payload:_(n),blockers:[e.asset_procedure,e.asset_type],blocks:[n.uuid]});return r.then(m=>{this.dispatch(Ke(m))}).catch(()=>{this.dispatch(ps(n.uuid))}),[n,r]}update(e){const{store:s}=this.client,a=fs(e.uuid)(s.getState());if(!a)throw new Error(`Expected asset procedure instance with uuid ${e.uuid} to exist`);const c={...a,...e};this.dispatch(Ke(c));const n=this.enqueueRequest({description:"Update asset procedure instance",method:h.PATCH,url:`/asset-procedure-instances/${e.uuid}/`,payload:e,blockers:[a.uuid],blocks:[a.uuid]});return n.then(r=>{this.dispatch(Ke(r))}).catch(()=>{this.dispatch(Ke(a))}),[c,n]}async remove(e){const{store:s}=this.client,a=s.getState(),c=fs(e)(a);if(!c)throw new Error(`Expected asset procedure instance with uuid ${e} to exist`);return this.dispatch(ps(e)),this.enqueueRequest({description:"Delete asset procedure instance",method:h.DELETE,url:`/asset-procedure-instances/${e}/`,blockers:[e],blocks:[]}).catch(n=>{throw this.dispatch(ms(c)),n})}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset procedure instances",method:h.GET,url:"/asset-procedure-instances/",queryParams:{project:e},blockers:[],blocks:[]});this.dispatch(Tn(s))}}class Pg extends O{add(e){var u;const{store:s}=this.client,a=(u=s.getState().userReducer.currentUser)==null?void 0:u.id,c=new Date().toISOString(),n=T({...e,created_by:a,submitted_at:c});this.dispatch(gs(n));const r=this.enqueueRequest({description:"Create asset procedure",method:h.POST,url:"/asset-procedures/",payload:_(n),blockers:[],blocks:[n.uuid]});return r.then(m=>{this.dispatch(Ye(m))}).catch(()=>{this.dispatch(bs(n.uuid))}),[n,r]}update(e){const{store:s}=this.client,a=Fs(e.uuid)(s.getState());if(!a)throw new Error(`Expected asset procedure with uuid ${e.uuid} to exist`);const c={...a,...e};this.dispatch(Ye(c));const n=this.enqueueRequest({description:"Update asset procedure",method:h.PATCH,url:`/asset-procedures/${e.uuid}/`,payload:e,blockers:[a.uuid],blocks:[a.uuid]});return n.then(r=>{this.dispatch(Ye(r))}).catch(()=>{this.dispatch(Ye(a))}),[c,n]}async remove(e){const{store:s}=this.client,a=s.getState(),c=Fs(e)(a);if(!c)throw new Error(`Expected asset procedure with uuid ${e} to exist`);const n=On(e)(a);return this.dispatch(bs(e)),this.dispatch(Rn(n.map(r=>r.uuid))),this.enqueueRequest({description:"Delete asset procedure",method:h.DELETE,url:`/asset-procedures/${e}/`,blockers:[e],blocks:[]}).catch(r=>{throw this.dispatch(gs(c)),this.dispatch(In(n)),r})}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset procedures",method:h.GET,url:"/asset-procedures/",queryParams:{organization:e},blockers:[],blocks:[]});this.dispatch(wn(s))}}class Fg extends w{async bulkAdd(e){var m;const s=new Date().toISOString(),a=(m=this.client.store.getState().userReducer.currentUser)==null?void 0:m.id,c={},n=[],r=[];for(const d of e){const{fieldsRevisionUuid:o,fieldIdentifier:p,file:A}=d,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:a,fields_revision:o,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,fields_revision:o};r.push(P)}this.dispatch(Vn(n));const u=this.enqueueRequest({description:"Add asset procedure step fields attachments",method:h.POST,url:"/asset-procedure-step-fields-attachments/bulk/",payload:{submitted_at:s,attachments:r,files:Object.values(c)},blockers:n.map(d=>d.fields_revision),blocks:n.map(d=>d.uuid)});return u.then(d=>{this.processPresignedUrls(d.presigned_urls),this.dispatch(kn(d.attachments))}).catch(()=>{this.dispatch(zn(n.map(d=>d.uuid)))}),[n,u.then(({attachments:d})=>d)]}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset procedure step fields attachments",method:h.GET,url:"/asset-procedure-step-fields-attachments/",queryParams:{organization:e},blockers:[],blocks:[]});this.dispatch(Mn(s))}}class Tg extends O{add(e){var u;const{store:s}=this.client,a=(u=s.getState().userReducer.currentUser)==null?void 0:u.id,c=new Date().toISOString(),n=T({...e,created_by:a,submitted_at:c});this.dispatch(Rs(n));const r=this.enqueueRequest({description:"Add Asset Procedure Step Fields",method:h.POST,url:"/asset-procedure-step-fields/",payload:n,blockers:[n.asset_procedure_step],blocks:[n.uuid]});return r.then(m=>{this.dispatch(Je(m))}).catch(m=>{throw this.dispatch(Os(n.uuid)),m}),[n,r]}update(e){const{store:s}=this.client,a=s.getState().assetProcedureStepFieldsReducer.instances[e.uuid];if(!a)throw new Error(`AssetProcedureStepFields with uuid ${e.uuid} not found`);const c={...a,...e};this.dispatch(Je(c));const n=this.enqueueRequest({description:"Update Asset Procedure Step Fields",method:h.PATCH,url:`/asset-procedure-step-fields/${a.uuid}/`,payload:e,blockers:[a.uuid],blocks:[a.uuid]});return n.then(r=>{this.dispatch(Je(r))}).catch(r=>{throw this.dispatch(Je(a)),r}),[c,n]}delete(e){const{store:s}=this.client,a=s.getState().assetProcedureStepFieldsReducer.instances[e];if(!a)throw new Error(`AssetProcedureStepFields with uuid ${e} not found`);this.dispatch(Os(e));const c=this.enqueueRequest({description:"Delete Asset Procedure Step Fields",method:h.DELETE,url:`/asset-procedure-step-fields/${e}/`,blockers:[e],blocks:[e]});return c.catch(n=>{throw this.dispatch(Rs(a)),n}),c}async refreshStore(e){const s=await this.enqueueRequest({description:"Get Asset Procedure Step Fields",method:h.GET,url:"/asset-procedure-step-fields/",queryParams:{organization:e},blockers:[],blocks:[]});this.dispatch(Bn(s))}}class Ig extends w{async bulkAdd(e,s){var d;const a=new Date().toISOString(),c=(d=this.client.store.getState().userReducer.currentUser)==null?void 0:d.id,n=Me(e,s??e.length),r=[],u=[];for(const o of n){const p={},A=[];for(const y of o){const{fieldValuesUuid:b,fieldIdentifier:P,file:I}=y,R=await this.getFilePayload(I);R.sha1 in p||(p[R.sha1]=R);const E=T({file:URL.createObjectURL(I),file_type:I.type,file_name:I.name,file_sha1:R.sha1,created_by:c,field_values:b,submitted_at:a,field_identifier:P});r.push(E);const ge={uuid:E.uuid,file_name:I.name,file_sha1:R.sha1,file_extension:R.extension,field_identifier:P,field_values:b};A.push(ge)}u.push({submitted_at:a,attachments:A,files:Object.values(p)})}this.dispatch(ot(r));const m=u.map(o=>this.enqueueRequest({description:"Add asset procedure step field values attachments",method:h.POST,url:"/asset-procedure-step-field-values-attachments/bulk/",payload:o,blockers:o.attachments.map(p=>p.field_values),blocks:o.attachments.map(p=>p.uuid)}));return Promise.all(m).then(o=>{for(const A of o)this.processPresignedUrls(A.presigned_urls);const p=o.flatMap(A=>A.attachments);this.dispatch(Hn(p))}).catch(o=>{throw this.dispatch(lt(r.map(p=>p.uuid))),o}),[r,m.map(o=>o.then(({attachments:p})=>p))]}async bulkDelete(e){const{store:s}=this.client,a=s.getState(),c=Kn(e)(a);this.dispatch(lt(e));try{await this.enqueueRequest({description:"Delete asset procedure step field values attachments",method:h.DELETE,url:"/asset-procedure-step-field-values-attachments/bulk/",payload:{attachment_ids:e},blockers:e,blocks:[]})}catch(n){throw this.dispatch(ot(c)),n}}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset procedure step field values attachments",method:h.GET,url:"/asset-procedure-step-field-values-attachments/",queryParams:{project:e},blockers:[],blocks:[]});this.dispatch(Nn(s))}}class Rg extends O{add(e){var r;const{store:s}=this.client,a=s.getState(),c=T({...e,created_by:(r=a.userReducer.currentUser)==null?void 0:r.id,submitted_at:new Date().toISOString()}),n=this.enqueueRequest({description:"Add asset procedure step field values",method:h.POST,url:"/asset-procedure-step-field-values/",payload:_(c),blockers:[e.asset,e.fields_revision,e.asset_procedure_instance],blocks:[c.uuid]});return this.dispatch(js(c)),n.then(u=>(this.dispatch(Xe(u)),u)).catch(()=>{this.dispatch(Ms(c.uuid))}),[c,n]}bulkAdd(e,s){var m;const a=new Date().toISOString(),c=[],n=Me(e.payloads,s??e.payloads.length),r=[];for(const d of n){const o=[];for(const p of d){const A=T({...p,values:p.values,created_by:(m=this.client.store.getState().userReducer.currentUser)==null?void 0:m.id,submitted_at:a});c.push(A),o.push({uuid:A.uuid,asset:p.asset,fields_revision:p.fields_revision,asset_procedure_instance:p.asset_procedure_instance,asset_procedure_step:p.asset_procedure_step,published_at:p.published_at,values:A.values})}r.push({submitted_at:a,values:e.values,field_values:o})}this.dispatch(Zn(c));const u=[];for(const d of r){const o=d.field_values.map(P=>P.asset),p=d.field_values.map(P=>P.fields_revision),A=d.field_values.map(P=>P.asset_procedure_instance),y=d.field_values.map(P=>P.uuid),b=this.enqueueRequest({description:"Bulk add asset procedure step field values",method:h.POST,url:"/asset-procedure-step-field-values/bulk/",payload:d,blockers:[...o,...p,...A],blocks:y});u.push(b)}return Promise.all(u).then(d=>{this.dispatch(xn(d.flat()))}).catch(()=>{this.dispatch(er(c.map(d=>d.uuid)))}),[c,u]}update(e){const{store:s}=this.client,a=s.getState(),c=Vs(e.uuid)(a);if(!c)throw new Error(`Expected AssetProcedureStepFieldValues with uuid ${e.uuid} to exist`);const n={...c,...e};this.dispatch(Xe(n));const r=this.enqueueRequest({description:"Update asset procedure step field values",method:h.PATCH,url:`/asset-procedure-step-field-values/${e.uuid}/`,payload:e,blockers:[n.fields_revision,n.asset,n.asset_procedure_instance],blocks:[n.uuid]});return r.then(u=>{this.dispatch(Xe(u))}).catch(()=>{this.dispatch(Xe(c))}),[n,r]}async delete(e){const{store:s}=this.client,a=s.getState(),c=Vs(e)(a);if(!c)throw new Error(`Expected submission with uuid ${e} to exist`);const n=Yn(e)(a);this.dispatch(Ms(e)),this.dispatch(lt(n.map(r=>r.uuid)));try{await this.enqueueRequest({description:"Delete asset procedure step field values",method:h.DELETE,url:`/asset-procedure-step-field-values/${e}/`,blockers:[e],blocks:[]})}catch(r){throw this.dispatch(js(c)),this.dispatch(ot(n)),r}}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset procedure step field values",method:h.GET,url:"/asset-procedure-step-field-values/",queryParams:{project:e},blockers:[],blocks:[]});this.dispatch(Qn(s))}}class Og extends O{bulkAdd(e,s){var m;const a=new Date().toISOString(),c=(m=this.client.store.getState().userReducer.currentUser)==null?void 0:m.id,n=e.map(d=>T(d)),r=n.map(d=>({...d,asset_procedure:s,created_by:c,submitted_at:a}));this.dispatch(zs(r));const u=this.enqueueRequest({description:"Add asset procedure steps",method:h.POST,url:"/asset-procedure-steps/bulk/",payload:{submitted_at:a,asset_procedure:s,steps:n},blockers:[s],blocks:n.map(({uuid:d})=>d)});return u.then(d=>{this.dispatch(mt(d))}).catch(()=>{this.dispatch(Ds(r.map(({uuid:d})=>d)))}),[r,u]}async bulkUpdate(e,s){const c=this.client.store.getState(),n=Us(e.map(({uuid:r})=>r))(c);return this.dispatch(mt(e)),this.enqueueRequest({description:"Edit asset procedure steps",method:h.PATCH,url:`/asset-procedures/${s}/bulk-update-steps/`,payload:{steps:e},blockers:[s],blocks:e.map(({uuid:r})=>r)}).catch(r=>{throw this.dispatch(mt(n)),r})}async bulkDelete(e){const{store:s}=this.client,a=Us(e)(s.getState());this.dispatch(Ds(e));const c=this.enqueueRequest({description:"Delete asset procedure steps",method:h.DELETE,url:"/asset-procedure-steps/bulk/",payload:{step_ids:e},blockers:e,blocks:[]});return c.catch(()=>{this.dispatch(zs(a))}),c}update(e){const{store:s}=this.client,a=rr(e.uuid)(s.getState());if(!a)throw new Error(`No asset procedure step with uuid ${e.uuid} found in the store`);const c={...a,...e};this.dispatch(Cs(c));const n=this.enqueueRequest({description:"Update asset procedure step",method:h.PATCH,url:`/asset-procedure-steps/${a.uuid}/`,payload:{name:e.name,description:e.description,priority:e.order,color:e.color},blockers:[a.uuid],blocks:[a.uuid]});return n.then(r=>{this.dispatch(Cs(r))}).catch(()=>{this.dispatch(cr(a))}),[c,n]}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset procedure steps",method:h.GET,url:"/asset-procedure-steps/",queryParams:{organization:e},blockers:[],blocks:[]});this.dispatch(ar(s))}}class _g extends O{add(e){var u;const{store:s}=this.client;if(!e.canvas_marker&&!e.geo_marker)throw new Error("Asset must have either a canvas_marker or geo_marker");const a=(u=s.getState().userReducer.currentUser)==null?void 0:u.id,c=new Date().toISOString(),n=T({...e,created_by:a,submitted_at:c});this.dispatch(Bs(n));const r=this.enqueueRequest({description:"Create asset",method:h.POST,url:"/assets/",payload:_(n),blockers:[n.asset_type],blocks:[n.uuid]});return r.then(m=>{this.dispatch(Qe(m))}).catch(()=>{this.dispatch(Gs(n.uuid))}),[n,r]}update(e){const{store:s}=this.client,a=Ws(e.uuid)(s.getState());if(!a)throw new Error(`No asset with uuid ${e.uuid} found in the store`);const c={...a,...e};if(!c.canvas_marker&&!c.geo_marker)throw new Error("Asset must have either a canvas_marker or geo_marker");this.dispatch(Qe(c));const n=this.enqueueRequest({description:"Edit asset",method:h.PATCH,url:`/assets/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return n.then(r=>{this.dispatch(Qe(r))}).catch(()=>{this.dispatch(Qe(a))}),[c,n]}async delete(e){const{store:s}=this.client,a=s.getState(),c=Ws(e)(a);if(!c)throw new Error(`No asset with uuid ${e} found in the store`);const n=Mc(e)(a),r=wu(e)(a),u=Ku(e)(a);if(this.dispatch(Gs(e)),n.length>0){const m=n.map(({uuid:d})=>d);this.dispatch(es(m))}if(r.length>0){const m=r.map(({uuid:d})=>d);this.dispatch(vt(m))}if(u.length>0){const m=u.map(({uuid:d})=>d);this.dispatch(Zi(m))}return this.enqueueRequest({description:"Delete asset",method:h.DELETE,url:`/assets/${e}/`,blockers:[e],blocks:[]}).catch(m=>{throw this.dispatch(Bs(c)),this.dispatch(xt(n)),this.dispatch(_t(r)),this.dispatch(Xi(u)),m})}bulkAdd(e,s,a,c){const n=new Date().toISOString(),r=Re.v4(),u=Me(e,c).map(o=>{const p=o.map(A=>T(A));return{batchId:Re.v4(),payload:{transaction_id:r,submitted_at:n,asset_type:s,project:a,assets:p}}}),m=[];let d=null;for(const o of u){const{batchId:p,payload:A}=o,y=A.assets.map(R=>R.uuid),b=[s];d&&b.push(d);const P=y;P.push(p);const I=this.enqueueRequest({description:"Batch create assets",method:h.POST,url:"/assets/bulk/",payload:A,blockers:b,blocks:P});d=o.batchId,m.push(I)}return Promise.all(m).then(o=>{const p=o.flat();this.dispatch(At(p))}),m}async bulkDelete(e){const{store:s}=this.client,a=s.getState(),c=hr(e)(a);this.dispatch(Ls(e));try{await this.enqueueRequest({description:"Bulk delete assets",method:h.DELETE,url:"/assets/bulk/",payload:{asset_ids:e},blockers:e,blocks:[]})}catch(n){throw this.dispatch(At(c)),n}}async refreshStore(e){const s=await this.enqueueRequest({description:"Get assets",method:h.GET,url:"/assets/",queryParams:{project:e},blockers:[],blocks:[]});this.dispatch(or(s))}}class vg extends O{add(e){var u;const{store:s}=this.client,a=(u=s.getState().userReducer.currentUser)==null?void 0:u.id,c=new Date().toISOString(),n=T({...e,created_by:a,submitted_at:c});this.dispatch(Ys(n));const r=this.enqueueRequest({description:"Add asset stage completion",method:h.POST,url:"/asset-stage-completions/",payload:_(n),blockers:[e.asset,e.stage],blocks:[n.uuid]});return r.then(m=>{this.dispatch(yr(m))}).catch(()=>{this.dispatch(Xs(n.uuid))}),[n,r]}delete(e){const{store:s}=this.client,a=gr(e)(s.getState());if(!a)throw new Error(`Expected asset stage completion with uuid ${e} to exist`);this.dispatch(Xs(e));const c=this.enqueueRequest({description:"Delete asset stage completion",method:h.DELETE,url:`/asset-stage-completions/${e}/`,blockers:[e],blocks:[]});return c.catch(()=>{this.dispatch(Ys(a))}),c}bulkAdd(e){var d;const{store:s}=this.client,a=new Date().toISOString(),c=(d=s.getState().userReducer.currentUser)==null?void 0:d.id,n=e.map(o=>T(o)),r=n.map(o=>({...o,created_by:c,submitted_at:a})),u=r.map(({uuid:o})=>o);this.dispatch(Js(r));const m=this.enqueueRequest({description:"Bulk create asset stage completions",method:h.POST,url:"/asset-stage-completions/bulk/",payload:{submitted_at:a,completions:n},blockers:[...e.map(o=>o.asset_procedure_instance),...e.map(o=>o.stage),...e.map(o=>o.asset)],blocks:u});return m.then(o=>{this.dispatch(fr(o))}).catch(()=>{this.dispatch(Qs(u))}),[r,m]}bulkDelete(e){const{store:s}=this.client,a=br(e)(s.getState());this.dispatch(Qs(e));const c=this.enqueueRequest({description:"Deleting asset stage completions",method:h.DELETE,url:"/asset-stage-completions/bulk/",payload:{completion_ids:e},blockers:e,blocks:[]});return c.catch(()=>{this.dispatch(Js(a))}),c}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset stage completions",method:h.GET,url:"/asset-stage-completions/",queryParams:{project:e},blockers:[],blocks:[]});this.dispatch(Ar(s))}}class wg extends O{bulkAdd(e,s){var m;const a=new Date().toISOString(),c=(m=this.client.store.getState().userReducer.currentUser)==null?void 0:m.id,n=e.map(d=>T(d)),r=n.map(d=>({...d,asset_procedure:s,created_by:c,submitted_at:a}));this.dispatch(ei(r));const u=this.enqueueRequest({description:"Add asset stages",method:h.POST,url:"/asset-stages/bulk/",payload:{submitted_at:a,asset_procedure:s,stages:n},blockers:[s],blocks:n.map(({uuid:d})=>d)});return u.then(d=>{this.dispatch(yt(d))}).catch(()=>{this.dispatch(si(r.map(({uuid:d})=>d)))}),[r,u]}async bulkUpdate(e,s){const c=this.client.store.getState(),n=ii(e.map(({uuid:r})=>r))(c);return this.dispatch(yt(e)),this.enqueueRequest({description:"Edit asset stages",method:h.PATCH,url:`/asset-procedures/${s}/bulk-update-stages/`,payload:{stages:e},blockers:[s],blocks:e.map(({uuid:r})=>r)}).catch(r=>{throw this.dispatch(yt(n)),r})}async bulkDelete(e){const{store:s}=this.client,a=ii(e)(s.getState());this.dispatch(si(e));const c=this.enqueueRequest({description:"Delete asset stages",method:h.DELETE,url:"/asset-stages/bulk/",payload:{stage_ids:e},blockers:e,blocks:[]});return c.catch(()=>{this.dispatch(ei(a))}),c}update(e){const{store:s}=this.client,a=Rr(e.uuid)(s.getState());if(!a)throw new Error(`No asset stage with uuid ${e.uuid} found in the store`);const c={...a,...e};this.dispatch(ti(c));const n=this.enqueueRequest({description:"Update asset stage",method:h.PATCH,url:`/asset-stages/${a.uuid}/`,payload:{name:e.name,description:e.description,priority:e.priority,color:e.color},blockers:[a.uuid],blocks:[a.uuid]});return n.then(r=>{this.dispatch(ti(r))}).catch(()=>{this.dispatch(Tr(a))}),[c,n]}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset stages",method:h.GET,url:"/asset-stages/",queryParams:{organization:e},blockers:[],blocks:[]});this.dispatch(Fr(s))}}class Eg extends Ie{constructor(){super(...arguments);f(this,"name","Asset Type Attachment");f(this,"url","/asset-type-attachments");f(this,"addAttachments",ci);f(this,"updateAttachments",Er);f(this,"removeAttachments",ni);f(this,"removeAttachment",qr);f(this,"setAttachment",wr);f(this,"selectAttachment",Vr)}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,asset_type:s.modelUuid})}buildAttachmentPayload(s){return{...s,asset_type:s.modelUuid}}async bulkAdd(s){return this._bulkAdd(s.map(a=>({modelUuid:a.assetTypeUuid,file:a.file})))}async delete(s){return this._delete(s)}async refreshStore(s){const a=await this.enqueueRequest({description:"Get asset type attachments",method:h.GET,url:`${this.url}/`,queryParams:{organization:s},blocks:[],blockers:[]});this.dispatch(vr(a))}}class qg extends w{async bulkAdd(e){var m;const s=new Date().toISOString(),a=(m=this.client.store.getState().userReducer.currentUser)==null?void 0:m.id,c={},n=[],r=[];for(const d of e){const{fieldsRevisionUuid:o,fieldIdentifier:p,file:A}=d,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:a,fields_revision:o,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,fields_revision:o};r.push(P)}this.dispatch(Ur(n));const u=this.enqueueRequest({description:"Add asset type fields attachments",method:h.POST,url:"/asset-type-fields-attachments/bulk/",payload:{submitted_at:s,attachments:r,files:Object.values(c)},blockers:n.map(d=>d.fields_revision),blocks:n.map(d=>d.uuid)});return u.then(d=>{this.processPresignedUrls(d.presigned_urls),this.dispatch($r(d.attachments))}).catch(()=>{this.dispatch(Br(n.map(d=>d.uuid)))}),[n,u.then(({attachments:d})=>d)]}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset type fields attachments",method:h.GET,url:"/asset-type-fields-attachments/",queryParams:{organization:e},blockers:[e],blocks:[]});this.dispatch(Dr(s))}}class jg extends O{add(e){var u;const{store:s}=this.client,a=(u=s.getState().userReducer.currentUser)==null?void 0:u.id,c=new Date().toISOString(),n=T({...e,created_by:a,submitted_at:c});this.dispatch(Kr(n));const r=this.enqueueRequest({description:"Add Asset Type Fields",method:h.POST,url:"/asset-type-fields/",payload:n,blockers:[n.asset_type],blocks:[n.uuid]});return r.then(m=>{this.dispatch(Yr(m))}).catch(m=>{throw this.dispatch(Jr(n.uuid)),m}),[n,r]}async refreshStore(e){const s=await this.enqueueRequest({description:"Get Asset Type Fields",method:h.GET,url:"/asset-type-fields/",queryParams:{organization:e},blockers:[],blocks:[]});this.dispatch(Wr(s))}}class Mg extends w{async bulkAdd(e,s){var d;const a=new Date().toISOString(),c=(d=this.client.store.getState().userReducer.currentUser)==null?void 0:d.id,n=Me(e,s??e.length),r=[],u=[];for(const o of n){const p={},A=[];for(const y of o){const{fieldValuesUuid:b,fieldIdentifier:P,file:I}=y,R=await this.getFilePayload(I);R.sha1 in p||(p[R.sha1]=R);const E=T({file:URL.createObjectURL(I),file_type:I.type,file_name:I.name,file_sha1:R.sha1,created_by:c,field_values:b,submitted_at:a,field_identifier:P});r.push(E);const ge={uuid:E.uuid,file_name:I.name,file_sha1:R.sha1,file_extension:R.extension,field_identifier:P,field_values:b};A.push(ge)}u.push({submitted_at:a,attachments:A,files:Object.values(p)})}this.dispatch(gt(r));const m=u.map(o=>this.enqueueRequest({description:"Add asset type field values attachments",method:h.POST,url:"/asset-type-field-values-attachments/bulk/",payload:o,blockers:o.attachments.map(p=>p.field_values),blocks:o.attachments.map(p=>p.uuid)}));return Promise.all(m).then(o=>{for(const A of o)this.processPresignedUrls(A.presigned_urls);const p=o.flatMap(A=>A.attachments);this.dispatch(ed(p))}).catch(o=>{throw this.dispatch(bt(r.map(p=>p.uuid))),o}),[r,m.map(o=>o.then(({attachments:p})=>p))]}async bulkDelete(e){const{store:s}=this.client,a=s.getState(),c=sd(e)(a);this.dispatch(bt(e));try{await this.enqueueRequest({description:"Delete asset type field values attachments",method:h.DELETE,url:"/asset-type-field-values-attachments/bulk/",payload:{attachment_ids:e},blockers:e,blocks:[]})}catch(n){throw this.dispatch(gt(c)),n}}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset type field values attachments",method:h.GET,url:"/asset-type-field-values-attachments/",queryParams:{project:e},blockers:[],blocks:[]});this.dispatch(xr(s))}}class Vg extends O{add(e){var r;const{store:s}=this.client,a=s.getState(),c=T({...e,created_by:(r=a.userReducer.currentUser)==null?void 0:r.id,submitted_at:new Date().toISOString()}),n=this.enqueueRequest({description:"Add asset type field values",method:h.POST,url:"/asset-type-field-values/",payload:_(c),blockers:[e.asset,e.fields_revision],blocks:[c.uuid]});return this.dispatch(hi(c)),n.then(u=>(this.dispatch(Ze(u)),u)).catch(()=>{this.dispatch(mi(c.uuid))}),[c,n]}bulkAdd(e,s){var m;const a=new Date().toISOString(),c=[],n=Me(e.payloads,s??e.payloads.length),r=[];for(const d of n){const o=[];for(const p of d){const A=T({...p,values:p.values,created_by:(m=this.client.store.getState().userReducer.currentUser)==null?void 0:m.id,submitted_at:a});c.push(A),o.push({uuid:A.uuid,asset:p.asset,fields_revision:p.fields_revision,published_at:p.published_at,values:A.values})}r.push({submitted_at:a,values:e.values,field_values:o})}this.dispatch(rd(c));const u=[];for(const d of r){const o=d.field_values.map(b=>b.asset),p=d.field_values.map(b=>b.fields_revision),A=d.field_values.map(b=>b.uuid),y=this.enqueueRequest({description:"Bulk add asset type field values",method:h.POST,url:"/asset-type-field-values/bulk/",payload:d,blockers:[...o,...p],blocks:A});u.push(y)}return Promise.all(u).then(d=>{this.dispatch(dd(d.flat()))}).catch(()=>{this.dispatch(ud(c.map(d=>d.uuid)))}),[c,u]}update(e){const{store:s}=this.client,a=s.getState(),c=Ai(e.uuid)(a);if(!c)throw new Error(`Expected AssetTypeFieldValues with uuid ${e.uuid} to exist`);const n={...c,...e};this.dispatch(Ze(n));const r=this.enqueueRequest({description:"Delete asset type field values",method:h.PATCH,url:`/asset-type-field-values/${e.uuid}/`,payload:e,blockers:[n.uuid,n.fields_revision,n.asset],blocks:[n.uuid]});return r.then(u=>{this.dispatch(Ze(u))}).catch(()=>{this.dispatch(Ze(c))}),[n,r]}async delete(e){const{store:s}=this.client,a=s.getState(),c=Ai(e)(a);if(!c)throw new Error(`Expected submission with uuid ${e} to exist`);const n=id(e)(a);this.dispatch(mi(e)),this.dispatch(bt(n.map(r=>r.uuid)));try{await this.enqueueRequest({description:"Delete asset type field values",method:h.DELETE,url:`/asset-type-field-values/${e}/`,blockers:[e],blocks:[]})}catch(r){throw this.dispatch(hi(c)),this.dispatch(gt(n)),r}}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset type field values",method:h.GET,url:"/asset-type-field-values/",queryParams:{project:e},blockers:[],blocks:[]});this.dispatch(nd(s))}}class kg extends O{add(e){var u;const{store:s}=this.client,a=(u=s.getState().userReducer.currentUser)==null?void 0:u.id,c=new Date().toISOString(),n=T({...e,created_by:a,submitted_at:c});this.dispatch(fi(n));const r=this.enqueueRequest({description:"Create asset type",method:h.POST,url:"/asset-types/",payload:_(n),blockers:[],blocks:[n.uuid]});return r.then(m=>{this.dispatch(xe(m))}).catch(()=>{this.dispatch(Si(n.uuid))}),[n,r]}update(e){const{store:s}=this.client,a=bi(e.uuid)(s.getState());if(!a)throw new Error(`Expected asset type with uuid ${e.uuid} to exist`);const c={...a,...e};this.dispatch(xe(c));const n=this.enqueueRequest({description:"Update asset type",method:h.PATCH,url:`/asset-types/${e.uuid}/`,payload:{icon:e.icon,color:e.color,name:e.name,description:e.description},blockers:[a.uuid],blocks:[a.uuid]});return n.then(r=>{this.dispatch(xe(r))}).catch(()=>{this.dispatch(xe(a))}),[c,n]}async delete(e){const{store:s}=this.client,a=s.getState(),c=bi(e)(a);if(!c)throw new Error(`Expected asset type with uuid ${e} to exist`);const n=Hs(e)(a),r=kr(e)(a);return this.dispatch(Si(e)),this.dispatch(Ls(n.map(u=>u.uuid))),this.dispatch(ni(r.map(({uuid:u})=>u))),this.enqueueRequest({description:"Delete asset type",method:h.DELETE,url:`/asset-types/${e}/`,blockers:[e],blocks:[]}).catch(u=>{throw this.dispatch(fi(c)),this.dispatch(At(n)),this.dispatch(ci(r)),u})}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset types",method:h.GET,url:"/asset-types/",queryParams:{organization:e},blockers:[],blocks:[]});this.dispatch(md(s))}}class zg extends O{add(e){var u;const{store:s}=this.client,a=(u=s.getState().userReducer.currentUser)==null?void 0:u.id,c=new Date().toISOString(),n=T({...e,created_by:a,submitted_at:c});this.dispatch(Fi(n));const r=this.enqueueRequest({description:"Create Category",method:h.POST,url:"/categories/",payload:_(n),blockers:[e.project],blocks:[n.uuid]});return[n,r]}update(e){const s=this.client.store.getState(),a=Ii(e.uuid)(s);if(!a)throw new Error(`Expected an existing category with uuid ${e.uuid}`);const c={...a,...e};this.dispatch(bd(c));const n=this.enqueueRequest({description:"Edit Category",method:h.PATCH,url:`/categories/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return[c,n]}remove(e){const{store:s}=this.client,a=Ii(e)(s.getState());if(!a)throw new Error(`No category with uuid ${e} found in the store`);this.dispatch(Pd(e));const c=this.enqueueRequest({description:"Delete Category",method:h.DELETE,url:`/categories/${a.uuid}/`,blockers:[a.uuid],blocks:[]});return c.catch(()=>{this.dispatch(Fi(a))}),c}async refreshStore(e){const s=await this.enqueueRequest({description:"Get categories",method:h.GET,url:"/categories/",queryParams:{project:e},blocks:[],blockers:[]});this.dispatch(gd(s))}}class Cg extends Ie{constructor(){super(...arguments);f(this,"name","Document Attachment");f(this,"url","/document-attachments");f(this,"addAttachments",Rd);f(this,"updateAttachments",_d);f(this,"removeAttachments",wd);f(this,"removeAttachment",vd);f(this,"setAttachment",Od);f(this,"selectAttachment",jd)}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,document:s.modelUuid})}buildAttachmentPayload(s){return{...s,document:s.modelUuid}}async bulkAdd(s){var p;const{store:a}=this.client,c=(p=a.getState().userReducer.currentUser)==null?void 0:p.id,n=new Date().toISOString(),r=[],u=[],m={},d={};for(const A of s){const{documentUuid:y,file:b}=A,P=await this.getFilePayload(b);P.sha1 in m||(m[P.sha1]=P,d[P.sha1]=[]);const I=this.buildOfflineAttachment({file:b,file_sha1:P.sha1,submitted_at:n,created_by:c,description:"",modelUuid:y});r.push(I),u.push({uuid:I.uuid,file_name:I.file_name,file_sha1:I.file_sha1,file_extension:P.extension,description:I.description,document:y}),d[P.sha1].push(I.uuid)}this.dispatch(this.addAttachments(r));const o=this.enqueueRequest({description:"Attach files to document",method:h.POST,url:"/document-attachments/bulk/",payload:{submitted_at:n,attachments:u,files:Object.values(m)},blocks:r.map(A=>A.uuid),blockers:r.map(A=>A.file_sha1)});return o.then(({attachments:A,presigned_urls:y})=>{this.dispatch(this.updateAttachments(A));const b=this.processPresignedUrls(y);for(const[P,I]of Object.entries(b))I.then(()=>{const R=d[P];for(const E of R)this.makeReadable(E)})}).catch(()=>{this.dispatch(this.removeAttachments(r.map(A=>A.uuid)))}),[r,o.then(({attachments:A})=>A)]}async delete(s){return this._delete(s)}makeReadable(s){this.enqueueRequest({description:"Add attachment to AI assistant",method:h.PATCH,url:`/document-attachments/${s}/`,payload:{readable_to_assistant:!0},blockers:["index-document-attachment",s],blocks:["index-document-attachment"]})}async refreshStore(s,a){const c=await this.enqueueRequest({description:"Get document attachments",method:h.GET,url:`/projects/${s}/document-attachments/`,blocks:[],blockers:[]});this.dispatch(Id(c));const n=await this.enqueueRequest({description:"Get document attachments",method:h.GET,url:`/organizations/${a}/document-attachments/`,blocks:[],blockers:[]});this.dispatch(this.addAttachments(n))}}class Dg extends O{add(e){var u;const{store:s}=this.client,a=(u=s.getState().userReducer.currentUser)==null?void 0:u.id,c=new Date().toISOString(),n=T({...e,created_by:a,submitted_at:c});this.dispatch(zd([n]));const r=this.enqueueRequest({description:"Create Document",method:h.POST,url:"/documents/",payload:_(n),queryParams:{parent_document:n.parent_document??void 0},blockers:n.parent_document?[n.parent_document]:[],blocks:[n.uuid]});return r.catch(()=>{this.dispatch(_i([n.uuid]))}),[n,r]}update(e){const{store:s}=this.client,a=s.getState().documentsReducer.documents[e.uuid];if(!a)throw new Error(`attempting to update a document with uuid ${e.uuid} that does not exist in store.documents`);const c={...a,...e};this.dispatch(Te([c]));const n=this.enqueueRequest({description:"Update Document",method:h.PATCH,url:`/documents/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return n.catch(()=>{Te([a])}),[c,n]}move(e,s,a){const{store:c}=this.client,n=Ce(c.getState()),r=[],u=n[e];if(!u)throw new Error(`attempting to move a document with uuid ${e} that does not exist in store.documents`);if(r.push(u),u.parent_document&&r.push(n[u.parent_document]),s){const d=n[s];if(!d)throw new Error(`attempting to move a document to target with uuid ${s} that does not exist in store.documents`);r.push(d),d.parent_document&&r.push(n[d.parent_document])}this.dispatch(Cd({documentId:e,targetDocumentId:s,position:a}));const m=this.enqueueRequest({description:"Move Document",method:h.PATCH,url:`/documents/${e}/move/`,queryParams:{target:s??void 0,position:a},blockers:[e],blocks:[]});return m.then(d=>{this.dispatch(Te(d))}).catch(()=>{this.dispatch(Te(r))}),m}delete(e){const{store:s}=this.client,a=Ce(s.getState()),c=Ud(e)(s.getState());if(!c)throw new Error(`attempting to delete a document with uuid ${e} that does not exist in store.documents`);const n=c.parent_document?a[c.parent_document]:void 0;this.dispatch(_i([e]));const r=this.enqueueRequest({description:"Delete Document",method:h.DELETE,url:`/documents/${e}/`,blockers:[e],blocks:[]});return r.then(u=>{this.dispatch(Te(u))}).catch(()=>{this.dispatch(Te([c])),n&&this.dispatch(Te([n]))}),r}async refreshStore(e,s){const a=this.enqueueRequest({description:"Get project documents",method:h.GET,url:`/projects/${e}/documents/`,blockers:[],blocks:[]}),c=this.enqueueRequest({description:"Get organization documents",method:h.GET,url:`/organizations/${s}/documents/`,blockers:[],blocks:[]});this.dispatch(kd([...await a,...await c]))}}class Ug extends O{async add(e,s){return this.enqueueRequest({description:"Add email domain to organization",method:h.POST,url:"/organization-email-domains/",payload:{email:s,organization:e},blockers:[e,"create-org"],blocks:[]})}async remove(e){return this.dispatch(Ld(e.uuid)),this.enqueueRequest({description:"Remove email domain from organization",method:h.DELETE,url:`/organization-email-domains/${e.uuid}/`,blockers:[e.domain],blocks:[]}).catch(s=>{throw this.dispatch(Gd(e)),s})}async refreshStore(e){const s=await this.enqueueRequest({description:"Fetch email domains for organization",method:h.GET,url:"/organization-email-domains/",queryParams:{organization:e},blockers:[e],blocks:[]});this.dispatch(Bd(s))}}class $g extends O{async getVerificationCode(e){return this.enqueueRequest({description:"Get verification code",method:h.GET,url:`/verification/email-verification/${e}/`,isAuthNeeded:!1,blockers:[],blocks:[]})}validateVerificationCode(e,s=void 0){return this.enqueueRequest({description:"Validate verification code",method:h.POST,url:`/verification/email-verification/${e}/`,isAuthNeeded:!1,payload:s,blockers:[],blocks:[]})}}const Ut={},ec=new Set;let $t=0,tc=0,sc=0;const Bg=20;class Gg extends O{constructor(){super(...arguments);f(this,"host");f(this,"_dbPromise",um.openDB("fileCache",1,{upgrade(s){s.createObjectStore("files")}}))}async renewUploadUrl(s){const a=await this.fetchCache(s);if(!a)throw new Error(`File with sha1 ${s} not found in cache`);const c=await Yt(a,s),n=await this.enqueueRequest({description:"Get S3 URL",method:h.GET,url:"/authentication/files/presigned-upload-url/",queryParams:{sha1:await ze(a),file_type:a.type,extension:a.name.split(".").pop(),size:a.size.toString()},blockers:[],blocks:[`s3-${c}`]});return"url"in n&&this.dispatch(Jd({sha1:s,...n})),n}async addCache(s,a){if(ec.has(a))return;if(!s.type){const r=s.name.split("."),u=r[r.length-1];s=new File([s],s.name,{type:u})}if(!s.name||!s.size||!s.type)throw new Error("Cannot add files to cache that do not have a name, size and type.");const c=await this._dbPromise;!!await c.get("files",a)?(console.error("File already cached (this is unexpected at this point):",s.name,a),$t++):(await c.put("files",s,a),tc++),ec.add(a),sc++,sc%Bg===0&&console.debug(`File cache summary: ${$t} hits and ${tc} misses, ${$t/($t+tc)*100}% hit rate over ${sc} calls to addCache.`)}async removeCache(s){await(await this._dbPromise).delete("files",s),ec.delete(s)}async fetchCache(s){return(await this._dbPromise).get("files",s)}async getOrRenewUploadUrl(s){const a=this.client.store.getState();return Xd(s)(a)??await this.renewUploadUrl(s)}async uploadFileToS3(s){const a=await this.fetchCache(s);if(!a)throw new Error(`File with sha1 ${s} not found in cache`);const c=await Yt(a,s),n={file_name:a.name,file_sha1:s,file:c},r=await this.getOrRenewUploadUrl(s);if("warning"in r){if(r.warning==="already_uploaded")return[n,Promise.resolve(void 0).then()];throw new Error(r.warning)}const u=r.url,m=this.enqueueRequest({url:u,description:"Upload file",method:h.POST,isExternalUrl:!0,isAuthNeeded:!1,attachmentHash:s,blockers:[`s3-${c}`],blocks:[s],s3url:r});return[n,m]}async fetchFileFromUrl(s,a,c){const n=s.split("?")[0]??s,r=await this.fetchCache(a);if(r){if(!r.name)throw new Error("Cached file unexpectedly has no name.");return r}if(s.startsWith("blob:")){const o=await Ac(s),p=new File([o],c??a,{type:o.type});return await this.addCache(p,a),p}let u=Ut[n],m=!0;u?m=!1:(u=new Promise(o=>{this.enqueueRequest({description:"Download file",method:h.GET,url:s,isExternalUrl:!0,isResponseBlob:!0,isAuthNeeded:!1,blockers:[a],blocks:[a]}).then(p=>{const A=new File([p],c??a,{type:p.type});o(A)})}),Ut[n]=u);let d;try{d=await u}catch(o){throw m&&o instanceof M&&delete Ut[n],o}if(m){const o=await ze(d);if(o!==a){const y=`The hash of the file returned from the server (${o}) does not match the
|
|
9
|
-
expected hash (${
|
|
8
|
+
`)}catch(c){console.error("Failed to extract error message from response body",c)}}else typeof t.body=="string"&&(s=t.body);else t!=null&&t.text?s=t.text:e instanceof Error&&(s=e.message);return!s||s.length>db?Ke:s}class U extends Error{constructor(s){super(Ke);S(this,"status");S(this,"response");S(this,"message");S(this,"options");const{response:i,innerError:c}=s;this.message=s.message??ub(i,c)??Ke,this.status=(i==null?void 0:i.status)??0,this.response=i,s.discard=s.discard??!1,this.options=s}}class um extends xh{clearAuth(){this.dispatch(gd(!1)),this.dispatch(F())}async initAuth(e){}async prepareAuth(){}}class v extends xh{constructor(s,i){super(s);S(this,"auth");this.auth=i}}class ob extends v{async startConversation(e,s){return this.enqueueRequest({description:"Start agent conversation",method:h.POST,url:"/agents/prompt/",payload:{prompt:e,active_project:s},blockers:["prompt"],blocks:["prompt"]}).then(i=>(this.dispatch(_c(i)),i))}async continueConversation(e,s,i){return this.enqueueRequest({description:"Prompt agent",method:h.POST,url:"/agents/prompt/",payload:{prompt:e,active_project:i},blockers:["prompt"],blocks:["prompt"],queryParams:{conversation_id:s}}).then(c=>{this.dispatch(vc(c))})}async fetchDetails(e){return this.enqueueRequest({description:"Get agent conversation",method:h.GET,url:`/agents/conversations/${e}/`,blockers:["conversation"],blocks:["conversation"]}).then(s=>{this.dispatch(Rc(s))})}async rate(e,s){return this.enqueueRequest({description:"Rate agent response",method:h.PUT,url:`/agents/responses/${e}/rate/`,payload:{rating:s},blockers:["rate"],blocks:["rate"]})}async refreshStore(e){const s=await this.enqueueRequest({description:"Get agent conversation history",method:h.GET,url:"/agents/conversations/",queryParams:{project:e},blockers:["agent-conversations"],blocks:["agent-conversations"]});return this.dispatch(Oc(s)),s}}class j extends v{getNumberOfAttachmentsWithSha1(e){const{issueAttachmentReducer:s,assetAttachmentReducer:i,assetTypeAttachmentReducer:c,documentAttachmentReducer:n,projectAttachmentReducer:r,formRevisionAttachmentReducer:o,formSubmissionAttachmentReducer:m,geoImageReducer:u,assetTypeFieldsAttachmentReducer:l,assetTypeFieldValuesAttachmentReducer:p,issueTypeFieldsAttachmentReducer:A,issueTypeFieldValuesAttachmentReducer:y}=this.client.store.getState();return[].concat(Object.values(s.instances),Object.values(i.instances),Object.values(c.instances),Object.values(n.instances),Object.values(r.instances),Object.values(o.instances),Object.values(m.instances),Object.values(u.instances),Object.values(l.instances),Object.values(p.instances),Object.values(A.instances),Object.values(y.instances)).filter(P=>P.file_sha1===e).length}processPresignedUrls(e){const s={};for(const[i,c]of Object.entries(e))s[i]=this.enqueueRequest({url:c.url,description:"Upload file to S3",method:h.POST,isExternalUrl:!0,isAuthNeeded:!1,attachmentHash:i,blockers:[`s3-${c.fields.key}`],blocks:[i],s3url:c});return s}async getFilePayload(e){const s=await He(e),i={sha1:s,file_type:e.type,extension:e.name.split(".").pop(),size:e.size};return await this.client.files.addCache(e,s),i}}class ke extends j{async _bulkAdd(e){var u;const{store:s}=this.client,i=(u=s.getState().userReducer.currentUser)==null?void 0:u.id,c=new Date().toISOString(),n=[],r=[],o={};for(const l of e){const{modelUuid:p,file:A}=l,y=await this.getFilePayload(A);y.sha1 in o||(o[y.sha1]=y);const b=this.buildOfflineAttachment({file:A,file_sha1:y.sha1,submitted_at:c,created_by:i,description:"",modelUuid:p});n.push(b),r.push(this.buildAttachmentPayload({uuid:b.uuid,file_name:b.file_name,file_sha1:b.file_sha1,file_extension:y.extension,description:b.description,modelUuid:p}))}this.dispatch(this.addAttachments(n));const m=this.enqueueRequest({description:`Add ${this.name}`,method:h.POST,url:`${this.url}/bulk/`,payload:{submitted_at:c,attachments:r,files:Object.values(o)},blocks:n.map(l=>l.uuid),blockers:n.map(l=>l.file_sha1)});return m.then(({attachments:l,presigned_urls:p})=>{this.dispatch(this.updateAttachments(l)),this.processPresignedUrls(p)}).catch(()=>{this.dispatch(this.removeAttachments(n.map(l=>l.uuid)))}),[n,m.then(({attachments:l})=>l)]}async _delete(e){const{store:s}=this.client,i=this.selectAttachment(e)(s.getState());if(!i)throw new Error(`Attempting to delete attachment with uuid ${e} that does not exist in the store`);this.dispatch(this.removeAttachment(i.uuid));const c=this.enqueueRequest({description:`Delete ${this.name}`,method:h.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]});return c.then(()=>{this.getNumberOfAttachmentsWithSha1(i.file_sha1)===0&&this.client.files.removeCache(i.file_sha1)}).catch(()=>{this.dispatch(this.setAttachment(i))}),c}}class lb extends ke{constructor(){super(...arguments);S(this,"name","Asset Attachment");S(this,"url","/asset-attachments");S(this,"initializeAttachments",Xt);S(this,"addAttachments",Qt);S(this,"updateAttachments",jc);S(this,"removeAttachments",xt);S(this,"removeAttachment",qc);S(this,"setAttachment",Ec);S(this,"selectAttachment",Uc)}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,asset:s.modelUuid})}buildAttachmentPayload(s){return{...s,asset:s.modelUuid}}async bulkAdd(s){return this._bulkAdd(s.map(i=>({modelUuid:i.assetUuid,file:i.file})))}async delete(s){return this._delete(s)}async refreshStore(s){const i=await this.enqueueRequest({description:"Get asset attachments",method:h.GET,url:`${this.url}/`,queryParams:{asset__project:s},blocks:[],blockers:[]});return this.dispatch(Xt(i)),i}}class hb extends ke{constructor(){super(...arguments);S(this,"name","Asset Procedure Attachment");S(this,"url","/asset-procedure-attachments");S(this,"addAttachments",$c);S(this,"updateAttachments",Lc);S(this,"removeAttachments",Hc);S(this,"removeAttachment",Nc);S(this,"setAttachment",Gc);S(this,"selectAttachment",Yc)}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,asset_procedure:s.modelUuid})}buildAttachmentPayload(s){return{...s,asset_procedure:s.modelUuid}}async bulkAdd(s){return this._bulkAdd(s.map(i=>({modelUuid:i.assetProcedureUuid,file:i.file})))}async delete(s){return this._delete(s)}async refreshStore(s){const i=await this.enqueueRequest({description:"Get asset procedure attachments",method:h.GET,url:`${this.url}/`,queryParams:{asset_procedure__organization:s},blocks:[],blockers:[]});return this.dispatch(Bc(i)),i}}class mb 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,field_identifier:p,file_extension:y.extension,file_sha1:y.sha1,fields_revision:l};r.push(P)}this.dispatch(Qc(n));const o=this.enqueueRequest({description:"Add asset procedure fields attachments",method:h.POST,url:"/asset-procedure-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(xc(u.attachments))}).catch(()=>{this.dispatch(en(n.map(u=>u.uuid)))}),[n,o.then(({attachments:u})=>u)]}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset procedure fields attachments",method:h.GET,url:"/asset-procedure-fields-attachments/",queryParams:{fields_revision__asset_procedure__organization:e},blockers:[],blocks:[]});return this.dispatch(Xc(s)),s}}class pb extends v{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(rn(n));const r=this.enqueueRequest({description:"Add Asset Procedure Fields",method:h.POST,url:"/asset-procedure-fields/",payload:w(n),blockers:[n.asset_procedure],blocks:[n.uuid]});return r.then(m=>{this.dispatch(dn(m))}).catch(m=>{throw this.dispatch(un(n.uuid)),m}),[n,r]}async refreshStore(e){const s=await this.enqueueRequest({description:"Get Asset Procedure Fields",method:h.GET,url:"/asset-procedure-fields/",queryParams:{asset_procedure__organization:e},blockers:[],blocks:[]});return this.dispatch(nn(s)),s}}function $e(t,e){const s=[];let i=0;const c=t.length;for(;i<c;)s.push(t.slice(i,i+=e));return s}class Ab extends j{async bulkAdd(e,s){var u;const i=new Date().toISOString(),c=(u=this.client.store.getState().userReducer.currentUser)==null?void 0:u.id,n=$e(e,s??e.length),r=[],o=[];for(const l of n){const p={},A=[];for(const y of l){const{fieldValuesUuid:b,fieldIdentifier:P,file:_}=y,R=await this.getFilePayload(_);R.sha1 in p||(p[R.sha1]=R);const q=T({file:URL.createObjectURL(_),file_type:_.type,file_name:_.name,file_sha1:R.sha1,created_by:c,field_values:b,submitted_at:i,field_identifier:P});r.push(q);const Ue={uuid:q.uuid,file_name:_.name,file_sha1:R.sha1,file_extension:R.extension,field_identifier:P,field_values:b};A.push(Ue)}o.push({submitted_at:i,attachments:A,files:Object.values(p)})}this.dispatch(mt(r));const m=o.map(l=>this.enqueueRequest({description:"Add asset procedure field values attachments",method:h.POST,url:"/asset-procedure-field-values-attachments/bulk/",payload:l,blockers:l.attachments.map(p=>p.field_values),blocks:l.attachments.map(p=>p.uuid)}));return Promise.all(m).then(l=>{for(const A of l)this.processPresignedUrls(A.presigned_urls);const p=l.flatMap(A=>A.attachments);this.dispatch(pn(p))}).catch(l=>{throw this.dispatch(pt(r.map(p=>p.uuid))),l}),[r,m.map(l=>l.then(({attachments:p})=>p))]}async bulkDelete(e){const{store:s}=this.client,i=s.getState(),c=yn(e)(i);this.dispatch(pt(e));try{await this.enqueueRequest({description:"Delete asset procedure field values attachments",method:h.DELETE,url:"/asset-procedure-field-values-attachments/bulk/",payload:{uuids:e},blockers:e,blocks:[]})}catch(n){throw this.dispatch(mt(c)),n}}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset procedure field values attachments",method:h.GET,url:"/asset-procedure-field-values-attachments/",queryParams:{field_values__asset_procedure_instance__project:e},blockers:[],blocks:[]});return this.dispatch(mn(s)),s}}class yb extends v{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 asset procedure field values",method:h.POST,url:"/asset-procedure-field-values/",payload:w(c),blockers:[e.asset,e.fields_revision,e.asset_procedure_instance],blocks:[c.uuid]});return this.dispatch(rs(c)),n.then(o=>(this.dispatch(Ze(o)),o)).catch(()=>{this.dispatch(ds(c.uuid))}),[c,n]}bulkAdd(e,s){var m;const i=new Date().toISOString(),c=[],n=$e(e.payloads,s??e.payloads.length),r=[];for(const u of n){const l=[];for(const p of u){const A=T({...p,values:p.values,created_by:(m=this.client.store.getState().userReducer.currentUser)==null?void 0:m.id,submitted_at:i});c.push(A),l.push({uuid:A.uuid,asset:p.asset,fields_revision:p.fields_revision,asset_procedure_instance:p.asset_procedure_instance,published_at:p.published_at,values:A.values})}r.push({submitted_at:i,values:e.values,field_values:l})}this.dispatch(Pn(c));const o=[];for(const u of r){const l=u.field_values.map(P=>P.asset),p=u.field_values.map(P=>P.fields_revision),A=u.field_values.map(P=>P.asset_procedure_instance),y=u.field_values.map(P=>P.uuid),b=this.enqueueRequest({description:"Bulk add asset procedure field values",method:h.POST,url:"/asset-procedure-field-values/bulk/",payload:u,blockers:[...l,...p,...A],blocks:y});o.push(b)}return Promise.all(o).then(u=>{this.dispatch(Fn(u.flat()))}).catch(()=>{this.dispatch(Tn(c.map(u=>u.uuid)))}),[c,o]}update(e){const{store:s}=this.client,i=s.getState(),c=os(e.uuid)(i);if(!c)throw new Error(`Expected AssetProcedureFieldValues with uuid ${e.uuid} to exist`);const n={...c,...e};this.dispatch(Ze(n));const r=this.enqueueRequest({description:"Update asset procedure field values",method:h.PATCH,url:`/asset-procedure-field-values/${e.uuid}/`,payload:e,blockers:[n.fields_revision,n.asset,n.asset_procedure_instance],blocks:[n.uuid]});return r.then(o=>{this.dispatch(Ze(o))}).catch(()=>{this.dispatch(Ze(c))}),[n,r]}async delete(e){const{store:s}=this.client,i=s.getState(),c=os(e)(i);if(!c)throw new Error(`Expected submission with uuid ${e} to exist`);const n=fn(e)(i);this.dispatch(ds(e)),this.dispatch(pt(n.map(r=>r.uuid)));try{await this.enqueueRequest({description:"Delete asset procedure field values",method:h.DELETE,url:`/asset-procedure-field-values/${e}/`,blockers:[e],blocks:[]})}catch(r){throw this.dispatch(rs(c)),this.dispatch(mt(n)),r}}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset procedure field values",method:h.GET,url:"/asset-procedure-field-values/",queryParams:{asset_procedure_instance__project:e},blockers:[],blocks:[]});return this.dispatch(bn(s)),s}}class fb extends v{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(hs(n));const r=this.enqueueRequest({description:"Create asset procedure instance",method:h.POST,url:"/asset-procedure-instances/",payload:w(n),blockers:[e.asset_procedure,e.asset_type],blocks:[n.uuid]});return r.then(m=>{this.dispatch(Xe(m))}).catch(()=>{this.dispatch(ms(n.uuid))}),[n,r]}update(e){const{store:s}=this.client,i=ys(e.uuid)(s.getState());if(!i)throw new Error(`Expected asset procedure instance with uuid ${e.uuid} to exist`);const c={...i,...e};this.dispatch(Xe(c));const n=this.enqueueRequest({description:"Update asset procedure instance",method:h.PATCH,url:`/asset-procedure-instances/${e.uuid}/`,payload:e,blockers:[i.uuid],blocks:[i.uuid]});return n.then(r=>{this.dispatch(Xe(r))}).catch(()=>{this.dispatch(Xe(i))}),[c,n]}async remove(e){const{store:s}=this.client,i=s.getState(),c=ys(e)(i);if(!c)throw new Error(`Expected asset procedure instance with uuid ${e} to exist`);return this.dispatch(ms(e)),this.enqueueRequest({description:"Delete asset procedure instance",method:h.DELETE,url:`/asset-procedure-instances/${e}/`,blockers:[e],blocks:[]}).catch(n=>{throw this.dispatch(hs(c)),n})}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset procedure instances",method:h.GET,url:"/asset-procedure-instances/",queryParams:{project:e},blockers:[],blocks:[]});return this.dispatch(Rn(s)),s}}class Sb extends v{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(Ss(n));const r=this.enqueueRequest({description:"Create asset procedure",method:h.POST,url:"/asset-procedures/",payload:w(n),blockers:[],blocks:[n.uuid]});return r.then(m=>{this.dispatch(Qe(m))}).catch(()=>{this.dispatch(gs(n.uuid))}),[n,r]}update(e){const{store:s}=this.client,i=Ps(e.uuid)(s.getState());if(!i)throw new Error(`Expected asset procedure with uuid ${e.uuid} to exist`);const c={...i,...e};this.dispatch(Qe(c));const n=this.enqueueRequest({description:"Update asset procedure",method:h.PATCH,url:`/asset-procedures/${e.uuid}/`,payload:e,blockers:[i.uuid],blocks:[i.uuid]});return n.then(r=>{this.dispatch(Qe(r))}).catch(()=>{this.dispatch(Qe(i))}),[c,n]}async remove(e){const{store:s}=this.client,i=s.getState(),c=Ps(e)(i);if(!c)throw new Error(`Expected asset procedure with uuid ${e} to exist`);const n=Mn(e)(i);return this.dispatch(gs(e)),this.dispatch(wn(n.map(r=>r.uuid))),this.enqueueRequest({description:"Delete asset procedure",method:h.DELETE,url:`/asset-procedures/${e}/`,blockers:[e],blocks:[]}).catch(r=>{throw this.dispatch(Ss(c)),this.dispatch(vn(n)),r})}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset procedures",method:h.GET,url:"/asset-procedures/",queryParams:{organization:e},blockers:[],blocks:[]});return this.dispatch(qn(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{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,field_identifier:p,file_extension:y.extension,file_sha1:y.sha1,fields_revision:l};r.push(P)}this.dispatch(Cn(n));const o=this.enqueueRequest({description:"Add asset procedure step fields attachments",method:h.POST,url:"/asset-procedure-step-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(kn(u.attachments))}).catch(()=>{this.dispatch(Bn(n.map(u=>u.uuid)))}),[n,o.then(({attachments:u})=>u)]}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset procedure step fields attachments",method:h.GET,url:"/asset-procedure-step-fields-attachments/",queryParams:{fields_revision__asset_procedure_step__organization:e},blockers:[],blocks:[]});return this.dispatch(Dn(s)),s}}class bb extends v{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(Is(n));const r=this.enqueueRequest({description:"Add Asset Procedure Step Fields",method:h.POST,url:"/asset-procedure-step-fields/",payload:w(n),blockers:[n.asset_procedure_step],blocks:[n.uuid]});return r.then(m=>{this.dispatch(xe(m))}).catch(m=>{throw this.dispatch(Os(n.uuid)),m}),[n,r]}update(e){const{store:s}=this.client,i=s.getState().assetProcedureStepFieldsReducer.instances[e.uuid];if(!i)throw new Error(`AssetProcedureStepFields with uuid ${e.uuid} not found`);const c={...i,...e};this.dispatch(xe(c));const n=this.enqueueRequest({description:"Update Asset Procedure Step Fields",method:h.PATCH,url:`/asset-procedure-step-fields/${i.uuid}/`,payload:e,blockers:[i.uuid],blocks:[i.uuid]});return n.then(r=>{this.dispatch(xe(r))}).catch(r=>{throw this.dispatch(xe(i)),r}),[c,n]}delete(e){const{store:s}=this.client,i=s.getState().assetProcedureStepFieldsReducer.instances[e];if(!i)throw new Error(`AssetProcedureStepFields with uuid ${e} not found`);this.dispatch(Os(e));const c=this.enqueueRequest({description:"Delete Asset Procedure Step Fields",method:h.DELETE,url:`/asset-procedure-step-fields/${e}/`,blockers:[e],blocks:[e]});return c.catch(n=>{throw this.dispatch(Is(i)),n}),c}async refreshStore(e){const s=await this.enqueueRequest({description:"Get Asset Procedure Step Fields",method:h.GET,url:"/asset-procedure-step-fields/",queryParams:{asset_procedure_step__asset_procedure__organization:e},blockers:[],blocks:[]});return this.dispatch(Hn(s)),s}}class Pb extends j{async bulkAdd(e,s){var u;const i=new Date().toISOString(),c=(u=this.client.store.getState().userReducer.currentUser)==null?void 0:u.id,n=$e(e,s??e.length),r=[],o=[];for(const l of n){const p={},A=[];for(const y of l){const{fieldValuesUuid:b,fieldIdentifier:P,file:_}=y,R=await this.getFilePayload(_);R.sha1 in p||(p[R.sha1]=R);const q=T({file:URL.createObjectURL(_),file_type:_.type,file_name:_.name,file_sha1:R.sha1,created_by:c,field_values:b,submitted_at:i,field_identifier:P});r.push(q);const Ue={uuid:q.uuid,file_name:_.name,file_sha1:R.sha1,file_extension:R.extension,field_identifier:P,field_values:b};A.push(Ue)}o.push({submitted_at:i,attachments:A,files:Object.values(p)})}this.dispatch(At(r));const m=o.map(l=>this.enqueueRequest({description:"Add asset procedure step field values attachments",method:h.POST,url:"/asset-procedure-step-field-values-attachments/bulk/",payload:l,blockers:l.attachments.map(p=>p.field_values),blocks:l.attachments.map(p=>p.uuid)}));return Promise.all(m).then(l=>{for(const A of l)this.processPresignedUrls(A.presigned_urls);const p=l.flatMap(A=>A.attachments);this.dispatch(Jn(p))}).catch(l=>{throw this.dispatch(yt(r.map(p=>p.uuid))),l}),[r,m.map(l=>l.then(({attachments:p})=>p))]}async bulkDelete(e){const{store:s}=this.client,i=s.getState(),c=Xn(e)(i);this.dispatch(yt(e));try{await this.enqueueRequest({description:"Delete asset procedure step field values attachments",method:h.DELETE,url:"/asset-procedure-step-field-values-attachments/bulk/",payload:{uuids:e},blockers:e,blocks:[]})}catch(n){throw this.dispatch(At(c)),n}}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset procedure step field values attachments",method:h.GET,url:"/asset-procedure-step-field-values-attachments/",queryParams:{field_values__asset_procedure_instance__project:e},blockers:[],blocks:[]});return this.dispatch(Yn(s)),s}}class Fb extends v{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 asset procedure step field values",method:h.POST,url:"/asset-procedure-step-field-values/",payload:w(c),blockers:[e.asset,e.fields_revision,e.asset_procedure_instance],blocks:[c.uuid]});return this.dispatch(Es(c)),n.then(o=>(this.dispatch(et(o)),o)).catch(()=>{this.dispatch(js(c.uuid))}),[c,n]}bulkAdd(e,s){var m;const i=new Date().toISOString(),c=[],n=$e(e.payloads,s??e.payloads.length),r=[];for(const u of n){const l=[];for(const p of u){const A=T({...p,values:p.values,created_by:(m=this.client.store.getState().userReducer.currentUser)==null?void 0:m.id,submitted_at:i});c.push(A),l.push({uuid:A.uuid,asset:p.asset,fields_revision:p.fields_revision,asset_procedure_instance:p.asset_procedure_instance,asset_procedure_step:p.asset_procedure_step,published_at:p.published_at,values:A.values})}r.push({submitted_at:i,values:e.values,field_values:l})}this.dispatch(sr(c));const o=[];for(const u of r){const l=u.field_values.map(P=>P.asset),p=u.field_values.map(P=>P.fields_revision),A=u.field_values.map(P=>P.asset_procedure_instance),y=u.field_values.map(P=>P.uuid),b=this.enqueueRequest({description:"Bulk add asset procedure step field values",method:h.POST,url:"/asset-procedure-step-field-values/bulk/",payload:u,blockers:[...l,...p,...A],blocks:y});o.push(b)}return Promise.all(o).then(u=>{this.dispatch(ar(u.flat()))}).catch(()=>{this.dispatch(ir(c.map(u=>u.uuid)))}),[c,o]}update(e){const{store:s}=this.client,i=s.getState(),c=qs(e.uuid)(i);if(!c)throw new Error(`Expected AssetProcedureStepFieldValues with uuid ${e.uuid} to exist`);const n={...c,...e};this.dispatch(et(n));const r=this.enqueueRequest({description:"Update asset procedure step field values",method:h.PATCH,url:`/asset-procedure-step-field-values/${e.uuid}/`,payload:e,blockers:[n.fields_revision,n.asset,n.asset_procedure_instance],blocks:[n.uuid]});return r.then(o=>{this.dispatch(et(o))}).catch(()=>{this.dispatch(et(c))}),[n,r]}async delete(e){const{store:s}=this.client,i=s.getState(),c=qs(e)(i);if(!c)throw new Error(`Expected submission with uuid ${e} to exist`);const n=Qn(e)(i);this.dispatch(js(e)),this.dispatch(yt(n.map(r=>r.uuid)));try{await this.enqueueRequest({description:"Delete asset procedure step field values",method:h.DELETE,url:`/asset-procedure-step-field-values/${e}/`,blockers:[e],blocks:[]})}catch(r){throw this.dispatch(Es(c)),this.dispatch(At(n)),r}}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset procedure step field values",method:h.GET,url:"/asset-procedure-step-field-values/",queryParams:{asset_procedure_instance__project:e},blockers:[],blocks:[]});return this.dispatch(tr(s)),s}}class Tb extends v{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(zs(n));const r=this.enqueueRequest({description:"Create asset procedure step",method:h.POST,url:"/asset-procedure-steps/",payload:w(n),blockers:[n.asset_procedure],blocks:[n.uuid]});return r.then(m=>{this.dispatch(St(m))}).catch(()=>{this.dispatch(Us(n.uuid))}),[n,r]}update(e){const{store:s}=this.client,i=Ds(e.uuid)(s.getState());if(!i)throw new Error(`No asset procedure step with uuid ${e.uuid} found in the store`);const c={...i,...e};this.dispatch(St(c));const n=this.enqueueRequest({description:"Update asset procedure step",method:h.PATCH,url:`/asset-procedure-steps/${i.uuid}/`,payload:{name:e.name,description:e.description,priority:e.order,color:e.color},blockers:[i.uuid],blocks:[i.uuid]});return n.then(r=>{this.dispatch(St(r))}).catch(()=>{this.dispatch(ur(i))}),[c,n]}async delete(e){const{store:s}=this.client,i=s.getState(),c=Ds(e)(i);if(!c)throw new Error(`No asset procedure step with uuid ${e} found in the store`);return this.dispatch(Us(e)),this.enqueueRequest({description:"Delete asset stage",method:h.DELETE,url:`/asset-stages/${e}/`,blockers:[e],blocks:[]}).catch(n=>{throw this.dispatch(zs(c)),n})}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset procedure steps",method:h.GET,url:"/asset-procedure-steps/",queryParams:{asset_procedure__organization:e},blockers:[],blocks:[]});return this.dispatch(dr(s)),s}}class Ib extends v{add(e){var o;const{store:s}=this.client;if(!e.canvas_marker&&!e.geo_marker)throw new Error("Asset must have either a canvas_marker or geo_marker");const 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(ks(n));const r=this.enqueueRequest({description:"Create asset",method:h.POST,url:"/assets/",payload:w(n),blockers:[n.asset_type],blocks:[n.uuid]});return r.then(m=>{this.dispatch(tt(m))}).catch(()=>{this.dispatch(Bs(n.uuid))}),[n,r]}update(e){const{store:s}=this.client,i=Ns(e.uuid)(s.getState());if(!i)throw new Error(`No asset with uuid ${e.uuid} found in the store`);const c={...i,...e};if(!c.canvas_marker&&!c.geo_marker)throw new Error("Asset must have either a canvas_marker or geo_marker");this.dispatch(tt(c));const n=this.enqueueRequest({description:"Edit asset",method:h.PATCH,url:`/assets/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return n.then(r=>{this.dispatch(tt(r))}).catch(()=>{this.dispatch(tt(i))}),[c,n]}async delete(e){const{store:s}=this.client,i=s.getState(),c=Ns(e)(i);if(!c)throw new Error(`No asset with uuid ${e} found in the store`);const n=Dc(e)(i),r=zu(e)(i),o=xu(e)(i);if(this.dispatch(Bs(e)),n.length>0){const m=n.map(({uuid:u})=>u);this.dispatch(xt(m))}if(r.length>0){const m=r.map(({uuid:u})=>u);this.dispatch(jt(m))}if(o.length>0){const m=o.map(({uuid:u})=>u);this.dispatch(Ja(m))}return this.enqueueRequest({description:"Delete asset",method:h.DELETE,url:`/assets/${e}/`,blockers:[e],blocks:[]}).catch(m=>{throw this.dispatch(ks(c)),this.dispatch(Qt(n)),this.dispatch(Et(r)),this.dispatch(Ka(o)),m})}bulkAdd(e,s,i,c){const n=new Date().toISOString(),r=Ne.v4(),o=$e(e,c).map(l=>{const p=l.map(A=>T(A));return{batchId:Ne.v4(),payload:{transaction_id:r,submitted_at:n,asset_type:s,project:i,assets:p}}}),m=[];let u=null;for(const l of o){const{batchId:p,payload:A}=l,y=A.assets.map(R=>R.uuid),b=[s];u&&b.push(u);const P=y;P.push(p);const _=this.enqueueRequest({description:"Batch create assets",method:h.POST,url:"/assets/bulk/",payload:A,blockers:b,blocks:P});u=l.batchId,m.push(_)}return Promise.all(m).then(l=>{const p=l.flat();this.dispatch(bt(p))}),m}async bulkDelete(e){const{store:s}=this.client,i=s.getState(),c=Ar(e)(i);this.dispatch($s(e));try{await this.enqueueRequest({description:"Bulk delete assets",method:h.DELETE,url:"/assets/bulk/",payload:{uuids:e},blockers:e,blocks:[]})}catch(n){throw this.dispatch(bt(c)),n}}async refreshStore(e){const s=await this.enqueueRequest({description:"Get assets",method:h.GET,url:"/assets/",queryParams:{project:e},blockers:[],blocks:[]});return this.dispatch(mr(s)),s}}class Ob extends v{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(Ws(n));const r=this.enqueueRequest({description:"Add asset stage completion",method:h.POST,url:"/asset-stage-completions/",payload:w(n),blockers:[e.asset,e.stage],blocks:[n.uuid]});return r.then(m=>{this.dispatch(gr(m))}).catch(()=>{this.dispatch(Ys(n.uuid))}),[n,r]}delete(e){const{store:s}=this.client,i=Fr(e)(s.getState());if(!i)throw new Error(`Expected asset stage completion with uuid ${e} to exist`);this.dispatch(Ys(e));const c=this.enqueueRequest({description:"Delete asset stage completion",method:h.DELETE,url:`/asset-stage-completions/${e}/`,blockers:[e],blocks:[]});return c.catch(()=>{this.dispatch(Ws(i))}),c}bulkAdd(e){var u;const{store:s}=this.client,i=new Date().toISOString(),c=(u=s.getState().userReducer.currentUser)==null?void 0:u.id,n=e.map(l=>T(l)),r=n.map(l=>({...l,created_by:c,submitted_at:i})),o=r.map(({uuid:l})=>l);this.dispatch(Ks(r));const m=this.enqueueRequest({description:"Bulk create asset stage completions",method:h.POST,url:"/asset-stage-completions/bulk/",payload:{submitted_at:i,completions:n},blockers:[...e.map(l=>l.asset_procedure_instance),...e.map(l=>l.stage),...e.map(l=>l.asset)],blocks:o});return m.then(l=>{this.dispatch(br(l))}).catch(()=>{this.dispatch(Js(o))}),[r,m]}bulkDelete(e){const{store:s}=this.client,i=Tr(e)(s.getState());this.dispatch(Js(e));const c=this.enqueueRequest({description:"Deleting asset stage completions",method:h.DELETE,url:"/asset-stage-completions/bulk/",payload:{uuids:e},blockers:e,blocks:[]});return c.catch(()=>{this.dispatch(Ks(i))}),c}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset stage completions",method:h.GET,url:"/asset-stage-completions/",queryParams:{asset_procedure_instance__project:e},blockers:[],blocks:[]});return this.dispatch(Sr(s)),s}}class _b extends v{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(Qs(n));const r=this.enqueueRequest({description:"Create asset",method:h.POST,url:"/asset-stages/",payload:w(n),blockers:[n.asset_procedure],blocks:[n.uuid]});return r.then(m=>{this.dispatch(Pt(m))}).catch(()=>{this.dispatch(xs(n.uuid))}),[n,r]}update(e){const{store:s}=this.client,i=ea(e.uuid)(s.getState());if(!i)throw new Error(`No asset stage with uuid ${e.uuid} found in the store`);const c={...i,...e};this.dispatch(Pt(c));const n=this.enqueueRequest({description:"Update asset stage",method:h.PATCH,url:`/asset-stages/${i.uuid}/`,payload:e,blockers:[i.uuid],blocks:[i.uuid]});return n.then(r=>{this.dispatch(Pt(r))}).catch(()=>{this.dispatch(_r(i))}),[c,n]}async delete(e){const{store:s}=this.client,i=s.getState(),c=ea(e)(i);if(!c)throw new Error(`No asset stage with uuid ${e} found in the store`);return this.dispatch(xs(e)),this.enqueueRequest({description:"Delete asset stage",method:h.DELETE,url:`/asset-stages/${e}/`,blockers:[e],blocks:[]}).catch(n=>{throw this.dispatch(Qs(c)),n})}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset stages",method:h.GET,url:"/asset-stages/",queryParams:{asset_procedure__organization:e},blockers:[],blocks:[]});return this.dispatch(Or(s)),s}}class Rb extends ke{constructor(){super(...arguments);S(this,"name","Asset Type Attachment");S(this,"url","/asset-type-attachments");S(this,"addAttachments",sa);S(this,"updateAttachments",jr);S(this,"removeAttachments",aa);S(this,"removeAttachment",qr);S(this,"setAttachment",Er);S(this,"selectAttachment",Ur)}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,asset_type:s.modelUuid})}buildAttachmentPayload(s){return{...s,asset_type:s.modelUuid}}async bulkAdd(s){return this._bulkAdd(s.map(i=>({modelUuid:i.assetTypeUuid,file:i.file})))}async delete(s){return this._delete(s)}async refreshStore(s){const i=await this.enqueueRequest({description:"Get asset type attachments",method:h.GET,url:`${this.url}/`,queryParams:{asset_type__organization:s},blocks:[],blockers:[]});return this.dispatch(Mr(i)),i}}class vb 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,field_identifier:p,file_extension:y.extension,file_sha1:y.sha1,fields_revision:l};r.push(P)}this.dispatch($r(n));const o=this.enqueueRequest({description:"Add asset type fields attachments",method:h.POST,url:"/asset-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(Gr(u.attachments))}).catch(()=>{this.dispatch(Lr(n.map(u=>u.uuid)))}),[n,o.then(({attachments:u})=>u)]}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset type fields attachments",method:h.GET,url:"/asset-type-fields-attachments/",queryParams:{fields_revision__asset_type__organization:e},blockers:[e],blocks:[]});return this.dispatch(Br(s)),s}}class wb extends v{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(Jr(n));const r=this.enqueueRequest({description:"Add Asset Type Fields",method:h.POST,url:"/asset-type-fields/",payload:w(n),blockers:[n.asset_type],blocks:[n.uuid]});return r.then(m=>{this.dispatch(Zr(m))}).catch(m=>{throw this.dispatch(Xr(n.uuid)),m}),[n,r]}async refreshStore(e){const s=await this.enqueueRequest({description:"Get Asset Type Fields",method:h.GET,url:"/asset-type-fields/",queryParams:{asset_type__organization:e},blockers:[],blocks:[]});return this.dispatch(Yr(s)),s}}class Mb extends j{async bulkAdd(e,s){var u;const i=new Date().toISOString(),c=(u=this.client.store.getState().userReducer.currentUser)==null?void 0:u.id,n=$e(e,s??e.length),r=[],o=[];for(const l of n){const p={},A=[];for(const y of l){const{fieldValuesUuid:b,fieldIdentifier:P,file:_}=y,R=await this.getFilePayload(_);R.sha1 in p||(p[R.sha1]=R);const q=T({file:URL.createObjectURL(_),file_type:_.type,file_name:_.name,file_sha1:R.sha1,created_by:c,field_values:b,submitted_at:i,field_identifier:P});r.push(q);const Ue={uuid:q.uuid,file_name:_.name,file_sha1:R.sha1,file_extension:R.extension,field_identifier:P,field_values:b};A.push(Ue)}o.push({submitted_at:i,attachments:A,files:Object.values(p)})}this.dispatch(It(r));const m=o.map(l=>this.enqueueRequest({description:"Add asset type field values attachments",method:h.POST,url:"/asset-type-field-values-attachments/bulk/",payload:l,blockers:l.attachments.map(p=>p.field_values),blocks:l.attachments.map(p=>p.uuid)}));return Promise.all(m).then(l=>{for(const A of l)this.processPresignedUrls(A.presigned_urls);const p=l.flatMap(A=>A.attachments);this.dispatch(sd(p))}).catch(l=>{throw this.dispatch(Ot(r.map(p=>p.uuid))),l}),[r,m.map(l=>l.then(({attachments:p})=>p))]}async bulkDelete(e){const{store:s}=this.client,i=s.getState(),c=id(e)(i);this.dispatch(Ot(e));try{await this.enqueueRequest({description:"Delete asset type field values attachments",method:h.DELETE,url:"/asset-type-field-values-attachments/bulk/",payload:{uuids:e},blockers:e,blocks:[]})}catch(n){throw this.dispatch(It(c)),n}}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset type field values attachments",method:h.GET,url:"/asset-type-field-values-attachments/",queryParams:{field_values__asset__project:e},blockers:[],blocks:[]});return this.dispatch(td(s)),s}}class Eb extends v{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 asset type field values",method:h.POST,url:"/asset-type-field-values/",payload:w(c),blockers:[e.asset,e.fields_revision],blocks:[c.uuid]});return this.dispatch(ua(c)),n.then(o=>(this.dispatch(st(o)),o)).catch(()=>{this.dispatch(oa(c.uuid))}),[c,n]}bulkAdd(e,s){var m;const i=new Date().toISOString(),c=[],n=$e(e.payloads,s??e.payloads.length),r=[];for(const u of n){const l=[];for(const p of u){const A=T({...p,values:p.values,created_by:(m=this.client.store.getState().userReducer.currentUser)==null?void 0:m.id,submitted_at:i});c.push(A),l.push({uuid:A.uuid,asset:p.asset,fields_revision:p.fields_revision,published_at:p.published_at,values:A.values})}r.push({submitted_at:i,values:e.values,field_values:l})}this.dispatch(ud(c));const o=[];for(const u of r){const l=u.field_values.map(b=>b.asset),p=u.field_values.map(b=>b.fields_revision),A=u.field_values.map(b=>b.uuid),y=this.enqueueRequest({description:"Bulk add asset type field values",method:h.POST,url:"/asset-type-field-values/bulk/",payload:u,blockers:[...l,...p],blocks:A});o.push(y)}return Promise.all(o).then(u=>{this.dispatch(od(u.flat()))}).catch(()=>{this.dispatch(ld(c.map(u=>u.uuid)))}),[c,o]}update(e){const{store:s}=this.client,i=s.getState(),c=ha(e.uuid)(i);if(!c)throw new Error(`Expected AssetTypeFieldValues with uuid ${e.uuid} to exist`);const n={...c,...e};this.dispatch(st(n));const r=this.enqueueRequest({description:"Delete asset type field values",method:h.PATCH,url:`/asset-type-field-values/${e.uuid}/`,payload:e,blockers:[n.uuid,n.fields_revision,n.asset],blocks:[n.uuid]});return r.then(o=>{this.dispatch(st(o))}).catch(()=>{this.dispatch(st(c))}),[n,r]}async delete(e){const{store:s}=this.client,i=s.getState(),c=ha(e)(i);if(!c)throw new Error(`Expected submission with uuid ${e} to exist`);const n=cd(e)(i);this.dispatch(oa(e)),this.dispatch(Ot(n.map(r=>r.uuid)));try{await this.enqueueRequest({description:"Delete asset type field values",method:h.DELETE,url:`/asset-type-field-values/${e}/`,blockers:[e],blocks:[]})}catch(r){throw this.dispatch(ua(c)),this.dispatch(It(n)),r}}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset type field values",method:h.GET,url:"/asset-type-field-values/",queryParams:{asset__project:e},blockers:[],blocks:[]});return this.dispatch(dd(s)),s}}class jb extends v{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(pa(n));const r=this.enqueueRequest({description:"Create asset type",method:h.POST,url:"/asset-types/",payload:w(n),blockers:[],blocks:[n.uuid]});return r.then(m=>{this.dispatch(at(m))}).catch(()=>{this.dispatch(Aa(n.uuid))}),[n,r]}update(e){const{store:s}=this.client,i=fa(e.uuid)(s.getState());if(!i)throw new Error(`Expected asset type with uuid ${e.uuid} to exist`);const c={...i,...e};this.dispatch(at(c));const n=this.enqueueRequest({description:"Update asset type",method:h.PATCH,url:`/asset-types/${e.uuid}/`,payload:{icon:e.icon,color:e.color,name:e.name,description:e.description},blockers:[i.uuid],blocks:[i.uuid]});return n.then(r=>{this.dispatch(at(r))}).catch(()=>{this.dispatch(at(i))}),[c,n]}async delete(e){const{store:s}=this.client,i=s.getState(),c=fa(e)(i);if(!c)throw new Error(`Expected asset type with uuid ${e} to exist`);const n=Ls(e)(i),r=Dr(e)(i);return this.dispatch(Aa(e)),this.dispatch($s(n.map(o=>o.uuid))),this.dispatch(aa(r.map(({uuid:o})=>o))),this.enqueueRequest({description:"Delete asset type",method:h.DELETE,url:`/asset-types/${e}/`,blockers:[e],blocks:[]}).catch(o=>{throw this.dispatch(pa(c)),this.dispatch(bt(n)),this.dispatch(sa(r)),o})}async refreshStore(e){const s=await this.enqueueRequest({description:"Get asset types",method:h.GET,url:"/asset-types/",queryParams:{organization:e},blockers:[],blocks:[]});return this.dispatch(Ad(s)),s}}class qb extends v{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(ga(n));const r=this.enqueueRequest({description:"Create Category",method:h.POST,url:"/categories/",payload:w(n),blockers:[e.project],blocks:[n.uuid]});return[n,r]}update(e){const s=this.client.store.getState(),i=Pa(e.uuid)(s);if(!i)throw new Error(`Expected an existing category with uuid ${e.uuid}`);const c={...i,...e};this.dispatch(Td(c));const n=this.enqueueRequest({description:"Edit Category",method:h.PATCH,url:`/categories/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return[c,n]}remove(e){const{store:s}=this.client,i=Pa(e)(s.getState());if(!i)throw new Error(`No category with uuid ${e} found in the store`);this.dispatch(Id(e));const c=this.enqueueRequest({description:"Delete Category",method:h.DELETE,url:`/categories/${i.uuid}/`,blockers:[i.uuid],blocks:[]});return c.catch(()=>{this.dispatch(ga(i))}),c}async refreshStore(e){const s=await this.enqueueRequest({description:"Get categories",method:h.GET,url:"/categories/",queryParams:{project__organization_owner:e},blocks:[],blockers:[]});return this.dispatch(Fd(s)),s}}class Vb extends ke{constructor(){super(...arguments);S(this,"name","Document Attachment");S(this,"url","/document-attachments");S(this,"addAttachments",wd);S(this,"updateAttachments",Ed);S(this,"removeAttachments",qd);S(this,"removeAttachment",jd);S(this,"setAttachment",Md);S(this,"selectAttachment",Ud)}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,document:s.modelUuid})}buildAttachmentPayload(s){return{...s,document:s.modelUuid}}async bulkAdd(s){var p;const{store:i}=this.client,c=(p=i.getState().userReducer.currentUser)==null?void 0:p.id,n=new Date().toISOString(),r=[],o=[],m={},u={};for(const A of s){const{documentUuid:y,file:b}=A,P=await this.getFilePayload(b);P.sha1 in m||(m[P.sha1]=P,u[P.sha1]=[]);const _=this.buildOfflineAttachment({file:b,file_sha1:P.sha1,submitted_at:n,created_by:c,description:"",modelUuid:y});r.push(_),o.push({uuid:_.uuid,file_name:_.file_name,file_sha1:_.file_sha1,file_extension:P.extension,description:_.description,document:y}),u[P.sha1].push(_.uuid)}this.dispatch(this.addAttachments(r));const l=this.enqueueRequest({description:"Attach files to document",method:h.POST,url:"/document-attachments/bulk/",payload:{submitted_at:n,attachments:o,files:Object.values(m)},blocks:r.map(A=>A.uuid),blockers:r.map(A=>A.file_sha1)});return l.then(({attachments:A,presigned_urls:y})=>{this.dispatch(this.updateAttachments(A));const b=this.processPresignedUrls(y);for(const[P,_]of Object.entries(b))_.then(()=>{const R=u[P];for(const q of R)this.makeReadable(q)})}).catch(()=>{this.dispatch(this.removeAttachments(r.map(A=>A.uuid)))}),[r,l.then(({attachments:A})=>A)]}async delete(s){return this._delete(s)}makeReadable(s){this.enqueueRequest({description:"Add attachment to AI assistant",method:h.PATCH,url:`/document-attachments/${s}/`,payload:{readable_to_assistant:!0},blockers:["index-document-attachment",s],blocks:["index-document-attachment"]})}async refreshStore(s,i){const c=await this.enqueueRequest({description:"Get document attachments",method:h.GET,url:`/projects/${s}/document-attachments/`,blocks:[],blockers:[]});this.dispatch(vd(c));const n=await this.enqueueRequest({description:"Get document attachments",method:h.GET,url:`/organizations/${i}/document-attachments/`,blocks:[],blockers:[]});return this.dispatch(this.addAttachments(n)),[...c,...n]}}class zb extends v{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(Bd([n]));const r=this.enqueueRequest({description:"Create Document",method:h.POST,url:"/documents/",payload:w(n),queryParams:{parent_document:n.parent_document??void 0},blockers:n.parent_document?[n.parent_document]:[],blocks:[n.uuid]});return r.catch(()=>{this.dispatch(Ia([n.uuid]))}),[n,r]}update(e){const{store:s}=this.client,i=s.getState().documentsReducer.documents[e.uuid];if(!i)throw new Error(`attempting to update a document with uuid ${e.uuid} that does not exist in store.documents`);const c={...i,...e};this.dispatch(Ce([c]));const n=this.enqueueRequest({description:"Update Document",method:h.PATCH,url:`/documents/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return n.catch(()=>{Ce([i])}),[c,n]}move(e,s,i){const{store:c}=this.client,n=We(c.getState()),r=[],o=n[e];if(!o)throw new Error(`attempting to move a document with uuid ${e} that does not exist in store.documents`);if(r.push(o),o.parent_document&&r.push(n[o.parent_document]),s){const u=n[s];if(!u)throw new Error(`attempting to move a document to target with uuid ${s} that does not exist in store.documents`);r.push(u),u.parent_document&&r.push(n[u.parent_document])}this.dispatch($d({documentId:e,targetDocumentId:s,position:i}));const m=this.enqueueRequest({description:"Move Document",method:h.PATCH,url:`/documents/${e}/move/`,queryParams:{target:s??void 0,position:i},blockers:[e],blocks:[]});return m.then(u=>{this.dispatch(Ce(u))}).catch(()=>{this.dispatch(Ce(r))}),m}delete(e){const{store:s}=this.client,i=We(s.getState()),c=Ld(e)(s.getState());if(!c)throw new Error(`attempting to delete a document with uuid ${e} that does not exist in store.documents`);const n=c.parent_document?i[c.parent_document]:void 0;this.dispatch(Ia([e]));const r=this.enqueueRequest({description:"Delete Document",method:h.DELETE,url:`/documents/${e}/`,blockers:[e],blocks:[]});return r.then(o=>{this.dispatch(Ce(o))}).catch(()=>{this.dispatch(Ce([c])),n&&this.dispatch(Ce([n]))}),r}async refreshStore(e,s){const i=this.enqueueRequest({description:"Get project documents",method:h.GET,url:`/projects/${e}/documents/`,blockers:[],blocks:[]}),c=this.enqueueRequest({description:"Get organization documents",method:h.GET,url:`/organizations/${s}/documents/`,blockers:[],blocks:[]}),n=[...await i,...await c];return this.dispatch(kd(n)),n}}class Ub extends v{async add(e,s){return this.enqueueRequest({description:"Add email domain to organization",method:h.POST,url:"/organization-email-domains/",payload:{email:s,organization:e},blockers:[e,"create-org"],blocks:[]})}async remove(e){return this.dispatch(Yd(e.uuid)),this.enqueueRequest({description:"Remove email domain from organization",method:h.DELETE,url:`/organization-email-domains/${e.uuid}/`,blockers:[e.domain],blocks:[]}).catch(s=>{throw this.dispatch(Kd(e)),s})}async refreshStore(e){const s=await this.enqueueRequest({description:"Fetch email domains for organization",method:h.GET,url:"/organization-email-domains/",queryParams:{organization:e},blockers:[e],blocks:[]});return this.dispatch(Wd(s)),s}}class Db extends v{async getVerificationCode(e){return this.enqueueRequest({description:"Get verification code",method:h.GET,url:`/verification/email-verification/${e}/`,isAuthNeeded:!1,blockers:[],blocks:[]})}validateVerificationCode(e,s=void 0){return this.enqueueRequest({description:"Validate verification code",method:h.POST,url:`/verification/email-verification/${e}/`,isAuthNeeded:!1,payload:s,blockers:[],blocks:[]})}}const Bt={},rc=new Set;let $t=0,dc=0,uc=0;const Cb=20;class kb extends v{constructor(){super(...arguments);S(this,"host");S(this,"_dbPromise",ym.openDB("fileCache",1,{upgrade(s){s.createObjectStore("files")}}))}async renewUploadUrl(s){const i=await this.fetchCache(s);if(!i)throw new Error(`File with sha1 ${s} not found in cache`);const c=await Kt(i,s),n=await this.enqueueRequest({description:"Get S3 URL",method:h.GET,url:"/authentication/files/presigned-upload-url/",queryParams:{sha1:await He(i),file_type:i.type,extension:i.name.split(".").pop(),size:i.size.toString()},blockers:[],blocks:[`s3-${c}`]});return"url"in n&&this.dispatch(eu({sha1:s,...n})),n}async addCache(s,i){if(rc.has(i))return;if(!s.type){const r=s.name.split("."),o=r[r.length-1];s=new File([s],s.name,{type:o})}if(!s.name||!s.size||!s.type)throw new Error("Cannot add files to cache that do not have a name, size and type.");const c=await this._dbPromise;!!await c.get("files",i)?(console.error("File already cached (this is unexpected at this point):",s.name,i),$t++):(await c.put("files",s,i),dc++),rc.add(i),uc++,uc%Cb===0&&console.debug(`File cache summary: ${$t} hits and ${dc} misses, ${$t/($t+dc)*100}% hit rate over ${uc} calls to addCache.`)}async removeCache(s){await(await this._dbPromise).delete("files",s),rc.delete(s)}async fetchCache(s){return(await this._dbPromise).get("files",s)}async getOrRenewUploadUrl(s){const i=this.client.store.getState();return tu(s)(i)??await this.renewUploadUrl(s)}async uploadFileToS3(s){const i=await this.fetchCache(s);if(!i)throw new Error(`File with sha1 ${s} not found in cache`);const c=await Kt(i,s),n={file_name:i.name,file_sha1:s,file:c},r=await this.getOrRenewUploadUrl(s);if("warning"in r){if(r.warning==="already_uploaded")return[n,Promise.resolve(void 0).then()];throw new Error(r.warning)}const o=r.url,m=this.enqueueRequest({url:o,description:"Upload file",method:h.POST,isExternalUrl:!0,isAuthNeeded:!1,attachmentHash:s,blockers:[`s3-${c}`],blocks:[s],s3url:r});return[n,m]}async fetchFileFromUrl(s,i,c){const n=s.split("?")[0]??s,r=await this.fetchCache(i);if(r){if(!r.name)throw new Error("Cached file unexpectedly has no name.");return r}if(s.startsWith("blob:")){const l=await gc(s),p=new File([l],c??i,{type:l.type});return await this.addCache(p,i),p}let o=Bt[n],m=!0;o?m=!1:(o=new Promise(l=>{this.enqueueRequest({description:"Download file",method:h.GET,url:s,isExternalUrl:!0,isResponseBlob:!0,isAuthNeeded:!1,blockers:[i],blocks:[i]}).then(p=>{const A=new File([p],c??i,{type:p.type});l(A)})}),Bt[n]=o);let u;try{u=await o}catch(l){throw m&&l instanceof U&&delete Bt[n],l}if(m){const l=await He(u);if(l!==i){const y=`The hash of the file returned from the server (${l}) does not match the
|
|
9
|
+
expected hash (${i}). This can happen if you're using a local development server and the
|
|
10
10
|
isExternalUrl flag in the request details is set to true, because instead of requesting the local
|
|
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=d.type.split("/")[1];if(!p)throw new Error("File has no extension");const A=c??o+"."+p;if(d=pc(d,A),!d.name)throw new Error("Failed to set file's name");await this.addCache(d,o),Ut[n]=new Promise(y=>{y(d)})}return d}}class Lg extends w{async bulkAdd(e){var m;const s=new Date().toISOString(),a=(m=this.client.store.getState().userReducer.currentUser)==null?void 0:m.id,c={},n=[],r=[];for(const d of e){const{revisionUuid:o,fieldIdentifier:p,file:A}=d,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:a,form_revision:o,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:o};r.push(P)}this.dispatch(eu(n));const u=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(d=>d.form_revision),blocks:n.map(d=>d.uuid)});return u.then(d=>{this.processPresignedUrls(d.presigned_urls),this.dispatch(tu(d.attachments))}).catch(()=>{this.dispatch(su(n.map(d=>d.uuid)))}),[n,u.then(({attachments:d})=>d)]}async refreshStore(e){const s=await this.enqueueRequest({description:"Fetch organization form revision attachments",method:h.GET,url:"/form-revision-attachments/",queryParams:{organization:e},blockers:[e],blocks:[]});this.dispatch(xd(s))}}class Ng extends w{add(e){var u;const{store:s}=this.client,c=(u=s.getState().userReducer.currentUser)==null?void 0:u.id,n=T({...e,created_by:c,submitted_at:new Date().toISOString()});this.dispatch(ji(n));const r=this.enqueueRequest({description:"Create form revision",method:h.POST,url:"/form-revisions/",payload:_(n),blockers:[e.form],blocks:[n.uuid]});return r.then(m=>{this.dispatch(nu(m))}).catch(()=>{this.dispatch(Mi(n.uuid))}),[n,r]}async refreshStore(e){const s=await this.enqueueRequest({description:"Get organization form revisions",method:h.GET,url:"/form-revisions/",queryParams:{organization:e},blockers:[e],blocks:[]});this.dispatch(ru(s))}}class Hg extends w{add(e,s){var d;const{store:a}=this.client,c=new Date().toISOString(),n=(d=a.getState().userReducer.currentUser)==null?void 0:d.id,r=T({...e,submitted_at:c,created_by:n}),u=T({...s,form:r.uuid,submitted_at:c,created_by:n});this.dispatch(ki(r)),this.dispatch(ji(u));const m=this.enqueueRequest({description:"Create form",method:h.POST,url:"/forms/",payload:{..._(r),initial_revision:{uuid:u.uuid,submitted_at:u.submitted_at,title:u.title,description:u.description,fields:u.fields}},blockers:[],blocks:[r.uuid,u.uuid]});return m.catch(o=>{throw this.dispatch(zi(r.uuid)),this.dispatch(Mi(u.uuid)),o}),[r,u,m]}async delete(e){const{store:s}=this.client,a=s.getState(),c=fu(e)(a);if(!c)throw new Error("Expected form to exist");const n=_u(e)(a);n.length>0&&this.dispatch(vt(n.map(({uuid:u})=>u)));const r=lu(e)(a);r.length>0&&this.dispatch(uu(r.map(({uuid:u})=>u))),this.dispatch(zi(e));try{return await this.enqueueRequest({description:"Delete form",method:h.DELETE,url:`/forms/${e}/`,blockers:[e],blocks:[]})}catch(u){throw this.dispatch(ki(c)),r.length>0&&this.dispatch(du(r)),n.length>0&&this.dispatch(_t(n)),u}}async refreshStore(e){const s=await this.enqueueRequest({description:"Fetch organization forms",method:h.GET,url:"/forms/",queryParams:{organization:e},blockers:[e],blocks:[]});this.dispatch(pu(s))}}class Wg extends w{async bulkAdd(e){var m;const s=new Date().toISOString(),a=(m=this.client.store.getState().userReducer.currentUser)==null?void 0:m.id,c={},n=[],r=[];for(const d of e){const{submissionUuid:o,fieldIdentifier:p,file:A}=d,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:a,form_submission:o,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:o};r.push(P)}this.dispatch(It(n));const u=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(d=>d.form_submission),blocks:n.map(d=>d.uuid)});return u.then(d=>{this.processPresignedUrls(d.presigned_urls),this.dispatch(bu(d.attachments))}).catch(d=>{throw this.dispatch(Rt(n.map(o=>o.uuid))),d}),[n,u.then(({attachments:d})=>d)]}async bulkDelete(e){const{store:s}=this.client,a=s.getState(),c=Pu(e)(a);this.dispatch(Rt(e));try{await this.enqueueRequest({description:"Delete form submission attachments",method:h.DELETE,url:"/form-submission-attachments/bulk/",payload:{attachment_ids:e},blockers:e,blocks:[]})}catch(n){throw this.dispatch(It(c)),n}}async refreshStore(e){const s=await this.enqueueRequest({description:"Get form submission attachments",method:h.GET,url:"/form-submission-attachments/",queryParams:{project:e},blockers:[],blocks:[]});this.dispatch(gu(s))}}class Kg extends w{add(e){var r;const{store:s}=this.client,a=s.getState(),c=T({...e,created_by:(r=a.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:_(c),blockers:["add-form-entry",e.form_revision,...e.issue?[e.issue]:[],...e.asset?[e.asset]:[]],blocks:[c.uuid]});return this.dispatch($i(c)),n.then(u=>(this.dispatch(Ot(u)),u)).catch(()=>{this.dispatch(Bi(c.uuid))}),[c,n]}update(e){const{store:s}=this.client,a=s.getState(),c=Ni(e.uuid)(a);if(!c)throw new Error(`Expected submission with uuid ${e.uuid} to exist`);const n={...c,...e};this.dispatch(Ou(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(u=>{this.dispatch(Ot(u))}).catch(()=>{this.dispatch(Ot(c))}),[n,r]}async delete(e){const{store:s}=this.client,a=s.getState(),c=Ni(e)(a);if(!c)throw new Error(`Expected submission with uuid ${e} to exist`);const n=Fu(e)(a);this.dispatch(Bi(e)),this.dispatch(Rt(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($i(c)),this.dispatch(It(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:[]});this.dispatch(Ru(s))}}class Yg extends w{async add(e){var p;const{store:s}=this.client,{file:a,...c}=e,n=new Date().toISOString(),r=(p=s.getState().userReducer.currentUser)==null?void 0:p.id,u=c.project,m=await this.getFilePayload(a),d=T({...c,file_name:a.name,file_sha1:m.sha1,file:URL.createObjectURL(a),submitted_at:n,created_by:r});this.dispatch(Vu(d));const o=this.enqueueRequest({description:"Add geo image",method:h.POST,url:"/geo-images/",payload:{uuid:d.uuid,submitted_at:n,title:d.title,description:d.description,geo_marker:d.geo_marker,canvas_marker:d.canvas_marker,sha1:d.file_sha1,project:d.project,file_name:d.file_name,direction:d.direction,original_date:d.original_date,file:m},blocks:[u],blockers:[u]});return o.then(A=>{this.processPresignedUrls(A.presigned_urls),this.dispatch(tt(A.geo_image))}).catch(()=>{this.dispatch(Wi(d.uuid))}),[d,o.then(A=>A.geo_image)]}async bulkAdd(e,s){var p;const{store:a}=this.client,c=new Date().toISOString(),n=(p=a.getState().userReducer.currentUser)==null?void 0:p.id,r=[],u=[],m=[],d={};for(const A of e){const{file:y,...b}=A,P=await this.getFilePayload(y);P.sha1 in d||(d[P.sha1]=P);const I=T({...b,file_name:y.name,file_sha1:P.sha1,file:URL.createObjectURL(y),submitted_at:c,created_by:n,project:s});r.push(I),u.push(I.uuid),m.push({uuid:I.uuid,sha1:I.file_sha1,file_name:I.file_name,title:I.title,description:I.description,geo_marker:I.geo_marker,canvas_marker:I.canvas_marker,direction:I.direction,original_date:I.original_date})}this.dispatch(ku(r));const o=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(d)},blocks:[s],blockers:u});return o.then(A=>{this.processPresignedUrls(A.presigned_urls),this.dispatch(Mu(A.geo_images))}).catch(()=>{this.dispatch(Cu(u))}),[r,o.then(A=>A.geo_images)]}update(e){const{store:s}=this.client,a=s.getState(),c=Ki(e.uuid)(a);if(!c)throw new Error(`Map image with uuid ${e.uuid} does not exist in the store`);const n={...c,...e};this.dispatch(zu(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(u=>{this.dispatch(tt(u))}).catch(()=>{this.dispatch(tt(c))}),[n,r]}async delete(e){const{store:s}=this.client,a=s.getState(),c=Ki(e)(a);if(!c)throw new Error(`Map image with uuid ${e} does not exist in the store`);this.dispatch(Wi(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(tt(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:[]});this.dispatch(ju(s))}}class Jg extends O{add(e){var u;const{store:s}=this.client,a=new Date().toISOString(),c=(u=s.getState().userReducer.currentUser)==null?void 0:u.id,n=T({...e,submitted_at:a,created_by:c});this.dispatch(Ji(n));const r=this.enqueueRequest({description:"Add issue association",method:h.POST,url:"/issue-associations/",payload:_(n),blockers:[e.associated_issue,...e.issue?[e.issue]:[],...e.asset?[e.asset]:[]],blocks:[n.uuid]});return r.then(m=>{this.dispatch(Lu(m))}).catch(()=>{this.dispatch(Qi(n.uuid))}),[n,r]}async delete(e){const{store:s}=this.client,a=Nu(e)(s.getState());if(!a)throw new Error(`Issue association with uuid ${e} not found in store.`);this.dispatch(Qi(e));const c=this.enqueueRequest({description:"Delete issue association",method:h.DELETE,url:`/issue-associations/${e}/`,blockers:[e],blocks:[]});return c.catch(()=>{this.dispatch(Ji(a))}),c}async refreshStore(e){const s=await this.enqueueRequest({description:"Fetch issue associations",method:h.GET,url:"/issue-associations/",queryParams:{project:e},blockers:[],blocks:[]});this.dispatch(Gu(s))}}class Xg extends Ie{constructor(){super(...arguments);f(this,"name","Issue Attachment");f(this,"url","/issue-attachments");f(this,"initializeAttachments",ea);f(this,"addAttachments",ta);f(this,"updateAttachments",Qu);f(this,"removeAttachments",sa);f(this,"removeAttachment",Zu);f(this,"setAttachment",Xu);f(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:s.modelUuid})}buildAttachmentPayload(s){return{...s,issue:s.modelUuid}}async bulkAdd(s){return this._bulkAdd(s.map(a=>({modelUuid:a.issueUuid,file:a.file})))}async delete(s){return this._delete(s)}async refreshStore(s){const a=await this.enqueueRequest({description:"Get issue attachments",method:h.GET,url:`${this.url}/`,queryParams:{project:s},blocks:[],blockers:[]});this.dispatch(ea(a))}}class Qg extends Ie{constructor(){super(...arguments);f(this,"name","Issue Comment Attachment");f(this,"url","/issue-comment-attachments");f(this,"initializeAttachments",aa);f(this,"addAttachments",co);f(this,"updateAttachments",ro);f(this,"removeAttachments",oo);f(this,"removeAttachment",uo);f(this,"setAttachment",no);f(this,"selectAttachment",mo)}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(a=>({modelUuid:a.issueCommentUuid,file:a.file})))}async delete(s){return this._delete(s)}async refreshStore(s){const a=await this.enqueueRequest({description:"Get issue comment attachments",method:h.GET,url:`${this.url}/`,queryParams:{project:s},blocks:[],blockers:[]});this.dispatch(aa(a))}}class Zg extends O{add(e){var n;const{store:s}=this.client,a=T({...e,author:(n=s.getState().userReducer.currentUser)==null?void 0:n.id,submitted_at:new Date().toISOString()});this.dispatch(ra(a));const c=this.enqueueRequest({description:"Add issue comment",method:h.POST,url:"/issue-comments/",payload:_(a),blockers:[e.issue],blocks:[a.uuid]});return c.catch(()=>{this.dispatch(da(a.uuid))}),[a,c]}update(e){const{store:s}=this.client,a=ua(e.uuid)(s.getState());if(!a)throw new Error(`Comment with uuid ${e.uuid} not found in store`);const c={...a,...e};this.dispatch(na(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(na(a))}),[c,n]}remove(e){const{store:s}=this.client,a=ua(e)(s.getState());if(!a)throw new Error(`Comment with uuid ${e} not found in store`);this.dispatch(da(e));const c=this.enqueueRequest({description:"Delete comment",method:h.DELETE,url:`/issue-comments/${e}/`,blockers:[e],blocks:[]});return c.catch(()=>{this.dispatch(ra(a))}),c}async refreshStore(e){const s=await this.enqueueRequest({description:"Get comments",method:h.GET,url:"/issue-comments/",queryParams:{project:e},blockers:[],blocks:[]});this.dispatch(yo(s))}}class xg extends O{add(e){var m;const{store:s}=this.client,a=s.getState(),c=new Date().toISOString(),n=(m=a.userReducer.currentUser)==null?void 0:m.id,r=T({...e,submitted_at:c,created_by:n});this.dispatch(la(r));const u=this.enqueueRequest({description:"Create issue",method:h.POST,url:"/issues/",payload:_(r),blockers:["add-issue",r.project,r.issue_type,...r.category?[r.category]:[]],blocks:[r.uuid]});return u.then(d=>{this.dispatch(wt(d))}).catch(d=>{throw this.dispatch(ha(r.uuid)),d}),[r,u]}update(e){var m;const s=this.client.store.getState(),a=ma(e.uuid)(s);if(!a)throw new Error(`Attempting to update an issue with uuid ${e.uuid} that doesn't exist in the store`);const c={...a,...e};this.dispatch(wt(c));const n={};for(const d of[v.TITLE,v.DESCRIPTION,v.STATUS,v.CATEGORY,v.PRIORITY,v.ASSIGNED_TO,v.DUE_DATE])if(d in e&&e[d]!==a[d])switch(d){case v.PRIORITY:case v.STATUS:{const o=e[d];n[d]=o!==void 0?Number(o):null;break}case v.DUE_DATE:case v.DESCRIPTION:case v.TITLE:n[d]=e[d]??null;break;case v.CATEGORY:{let o=null;const p=e[d];if(p&&(o=s.categoryReducer.instances[p]??null,!o))throw new Error(`Trying to update issue category to ${p} which does not exist in store`);n[d]=o?{name:o.name,color:o.color,uuid:o.uuid}:null;break}case v.ASSIGNED_TO:{let o=null;const p=e[d];if(p&&(o=s.userReducer.instances[p]??null,!o))throw new Error(`Trying to update issue assigned_to to ${p} which does not exist in store`);n[d]=o?{full_name:o.username,id:o.id}:null;break}}const r=T({created_by:(m=s.userReducer.currentUser)==null?void 0:m.id,submitted_at:new Date().toISOString(),issue:a.uuid,changes:n});this.dispatch(yl(r));const u=this.enqueueRequest({description:"Edit issue",method:h.PATCH,url:`/issues/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return u.catch(()=>{this.dispatch(wt(a)),this.dispatch(Sl(r.uuid))}),[c,u]}async remove(e){const{store:s}=this.client,a=s.getState(),c=ma(e)(a);if(!c)throw new Error(`No issue with uuid ${e} found in the store`);const n=to(e)(a),r=Pl(e)(a),u=vu(e)(a),m={};for(const o of Hu(e)(a))m[o.uuid]=o;for(const o of Wu(e)(a))m[o.uuid]=o;const d=Object.values(m);this.dispatch(ha(e)),n.length>0&&this.dispatch(sa(n.map(({uuid:o})=>o))),r.length>0&&this.dispatch(gl(r.map(({uuid:o})=>o))),u.length>0&&this.dispatch(vt(u.map(({uuid:o})=>o))),d.length>0&&this.dispatch(Zi(d.map(({uuid:o})=>o)));try{return await this.enqueueRequest({description:"Delete issue",method:h.DELETE,url:`/issues/${e}/`,blockers:[e],blocks:[]})}catch(o){throw this.dispatch(la(c)),this.dispatch(ta(n)),this.dispatch(fl(r)),this.dispatch(_t(u)),this.dispatch(Xi(d)),o}}async refreshStore(e){const s=await this.enqueueRequest({description:"Get issues",method:h.GET,url:"/issues/",queryParams:{project:e},blockers:[],blocks:[]});this.dispatch(bo(s))}}class eb extends Ie{constructor(){super(...arguments);f(this,"name","Issue Type Attachment");f(this,"url","/issue-type-attachments");f(this,"initializeAttachments",Aa);f(this,"addAttachments",Oo);f(this,"updateAttachments",vo);f(this,"removeAttachments",Eo);f(this,"removeAttachment",wo);f(this,"setAttachment",_o);f(this,"selectAttachment",Mo)}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(a=>({modelUuid:a.issueTypeUuid,file:a.file})))}async delete(s){return this._delete(s)}async refreshStore(s){const a=await this.enqueueRequest({description:"Get issue type attachments",method:h.GET,url:`${this.url}/`,queryParams:{organization:s},blocks:[],blockers:[]});this.dispatch(Aa(a))}}class tb extends w{async bulkAdd(e){var m;const s=new Date().toISOString(),a=(m=this.client.store.getState().userReducer.currentUser)==null?void 0:m.id,c={},n=[],r=[];for(const d of e){const{fieldsRevisionUuid:o,fieldIdentifier:p,file:A}=d,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:a,fields_revision:o,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:o};r.push(P)}this.dispatch(Co(n));const u=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(d=>d.fields_revision),blocks:n.map(d=>d.uuid)});return u.then(d=>{this.processPresignedUrls(d.presigned_urls),this.dispatch(Do(d.attachments))}).catch(()=>{this.dispatch(Uo(n.map(d=>d.uuid)))}),[n,u.then(({attachments:d})=>d)]}async refreshStore(e){const s=await this.enqueueRequest({description:"get issue type fields attachments",method:h.GET,url:"/issue-type-fields-attachments/",queryParams:{organization:e},blockers:[e],blocks:[]});this.dispatch(zo(s))}}class sb extends O{add(e){var u;const{store:s}=this.client,a=(u=s.getState().userReducer.currentUser)==null?void 0:u.id,c=new Date().toISOString(),n=T({...e,created_by:a,submitted_at:c});this.dispatch(Jo(n));const r=this.enqueueRequest({description:"Add Issue Type Fields",method:h.POST,url:"/issue-type-fields/",payload:_(n),blockers:[n.issue_type],blocks:[n.uuid]});return r.then(m=>{this.dispatch(Xo(m))}).catch(m=>{throw this.dispatch(Qo(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:{organization:e},blockers:[],blocks:[]});this.dispatch(Yo(s))}}class ib extends w{async bulkAdd(e){var m;const s=new Date().toISOString(),a=(m=this.client.store.getState().userReducer.currentUser)==null?void 0:m.id,c={},n=[],r=[];for(const d of e){const{fieldValuesUuid:o,fieldIdentifier:p,file:A}=d,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:a,field_values:o,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:o};r.push(P)}this.dispatch(qt(n));const u=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(d=>d.field_values),blocks:n.map(d=>d.uuid)});return u.then(({presigned_urls:d,attachments:o})=>{this.processPresignedUrls(d),this.dispatch(sl(o))}).catch(d=>{throw this.dispatch(jt(n.map(o=>o.uuid))),d}),[n,u.then(({attachments:d})=>d)]}async bulkDelete(e){const{store:s}=this.client,a=s.getState(),c=al(e)(a);this.dispatch(jt(e));try{await this.enqueueRequest({description:"Delete issue type field values attachments",method:h.DELETE,url:"/issue-type-field-values-attachments/bulk/",payload:{attachment_ids:e},blockers:e,blocks:[]})}catch(n){throw this.dispatch(qt(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:{project:e},blockers:[],blocks:[]});this.dispatch(tl(s))}}class ab extends O{add(e){var r;const{store:s}=this.client,a=s.getState(),c=T({...e,created_by:(r=a.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:_(c),blockers:[e.issue,e.fields_revision],blocks:[c.uuid]});return this.dispatch(Sa(c)),n.then(u=>(this.dispatch(it(u)),u)).catch(()=>{this.dispatch(ga(c.uuid))}),[c,n]}update(e){const{store:s}=this.client,a=s.getState(),c=Pa(e.uuid)(a);if(!c)throw new Error(`Expected IssueTypeFieldValues with uuid ${e.uuid} to exist`);const n={...c,...e};this.dispatch(it(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(u=>{this.dispatch(it(u))}).catch(()=>{this.dispatch(it(c))}),[n,r]}async delete(e){const{store:s}=this.client,a=s.getState(),c=Pa(e)(a);if(!c)throw new Error(`Expected submission with uuid ${e} to exist`);const n=cl(e)(a);this.dispatch(ga(e)),this.dispatch(jt(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(Sa(c)),this.dispatch(qt(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:{project:e},blockers:[],blocks:[]});this.dispatch(No(s))}}class cb extends O{add(e){var r;const{store:s}=this.client,a=s.getState(),c=T({...e,submitted_at:new Date().toISOString(),created_by:(r=a.userReducer.currentUser)==null?void 0:r.id});this.dispatch(ul(c));const n=this.enqueueRequest({method:h.POST,url:"/issue-types/",payload:_(c),blockers:[],blocks:[c.uuid]});return n.then(u=>{this.dispatch(at(u))}).catch(()=>{this.dispatch(Oa(c.uuid))}),[c,n]}update(e){const{store:s}=this.client,a=s.getState(),c=_a(e.uuid)(a);if(!c)throw new Error(`IssueType with uuid ${e.uuid} does not exist in the store.`);const n={...c,...e};this.dispatch(ol(n));const r=this.enqueueRequest({method:h.PATCH,url:`/issue-types/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return r.then(u=>{this.dispatch(at(u))}).catch(()=>{this.dispatch(at(c))}),[n,r]}delete(e){const{store:s}=this.client,a=s.getState(),c=_a(e)(a);if(!c)throw new Error(`IssueType with uuid ${e} does not exist in the store.`);const n=va(e)(a);this.dispatch(Oa(e)),this.dispatch(Fo(n.map(u=>u.uuid)));const r=this.enqueueRequest({method:h.DELETE,url:`/issue-types/${e}/`,blockers:[e],blocks:[]});return r.catch(()=>{this.dispatch(at(c)),this.dispatch(Po(n))}),r}async refreshStore(e){const s=await this.enqueueRequest({method:h.GET,url:"/issue-types/",queryParams:{organization:e},blockers:[],blocks:[]});this.dispatch(dl(s))}}class nb extends O{async refreshStore(e){const s=await this.enqueueRequest({description:"Get issue updates",method:h.GET,url:"/issue-updates/",queryParams:{project:e},blockers:[],blocks:[]});this.dispatch(Al(s))}}const rb=1800;function db(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 ub extends tm{constructor(){super(...arguments);f(this,"_getRenewedTokens",async s=>{const a=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 a}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(){super.clearAuth(),this.clearTokens()}async renewTokens(){const s=this.getRefreshToken();if(!s)throw new Error("No refresh token found");console.debug(this.constructor.name,"renewing tokens");try{const a=await this._getRenewedTokens(s);if(!a)return;console.log("Got renewed tokens"),this.setTokens(a)}catch(a){throw console.error("Could not renew tokens; clearing auth",a),this.clearAuth(),a}}tokenIsExpiringSoon(){const s=this.getAccessToken();if(!s)return!1;const a=Date.now()/1e3;let c;try{c=om(s).exp??a}catch{c=a}return c-a<rb}async prepareAuth(){if(this.tokenIsExpiringSoon()){console.debug(this.constructor.name,"preparing auth");try{await this.renewTokens()}catch(s){return s instanceof M&&this.clearAuth(),s instanceof Error?Promise.reject(s):Promise.reject(new Error((s??Ge).toString()))}}}getAuthHeader(){return`Bearer ${this.getAccessToken()}`}prepareRequest(s){const a=this.getAuthHeader();return a&&(s=s.set("Authorization",a)),s}async handleUnauthorized(s,a){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 M({message:"You have been signed out due to inactivity.",response:a,discard:!0});if(c.authReducer.isLoggedIn)await this.renewTokens();else throw console.debug("Forbidden; user is not logged in."),new M({message:"Incorrect username or password.",response:a,discard:!0})}async initAuth(s){return this.enqueueRequest({uuid:Re.v4(),description:"Get token pair",method:h.POST,url:this.initTokensUrl,payload:s,isAuthNeeded:!1,checkAuth:!1,immediate:!0,blockers:[],blocks:[]}).then(a=>{this.setTokens(db(a))})}}class ob extends O{async getLicense(e){const s=await this.enqueueRequest({description:"Get license",method:h.GET,url:`/billing/${e.uuid}/`,isAuthNeeded:!0,blockers:[e.organization_owner],blocks:[]});return this.dispatch(Pe(s)),s}async pauseLicense(e){const s=await this.enqueueRequest({description:"Pause license",method:h.DELETE,url:`/billing/${e.uuid}/suspend/`,isAuthNeeded:!0,blockers:[e.organization_owner],blocks:[]});return this.dispatch(Pe(s)),s}async resumeLicense(e){const s=await this.enqueueRequest({description:"Resume license",method:h.PATCH,url:`/billing/${e.uuid}/suspend/`,isAuthNeeded:!0,blockers:[e.organization_owner],blocks:[]});return this.dispatch(Pe(s)),s}async cancelLicense(e){const s=await this.enqueueRequest({description:"Cancel license",method:h.DELETE,url:`/billing/${e.uuid}/`,isAuthNeeded:!0,blockers:[e.organization_owner],blocks:[]});return this.dispatch(Pe(s)),s}async attachLicenseToProject(e,s){const a=await this.enqueueRequest({description:"Attach license",method:h.PATCH,url:`/billing/${e.uuid}/project/`,isAuthNeeded:!0,payload:{project:s.uuid},blockers:[e.organization_owner,s.uuid],blocks:["add-issue","add-form-entry","change-access-level","add-workspace"]});return this.dispatch(Pe(a)),a}async detachLicenseFromProject(e){const s=await this.enqueueRequest({description:"Detach license",method:h.DELETE,url:`/billing/${e.uuid}/project/`,isAuthNeeded:!0,blockers:[e.organization_owner],blocks:["add-issue","add-form-entry","change-access-level","add-workspace"]});return this.dispatch(Pe(s)),s}async getLatestTransaction(e){return await this.enqueueRequest({description:"Get latest transaction",method:h.GET,url:`/billing/${e.uuid}/transaction/`,isAuthNeeded:!0,blockers:[e.uuid],blocks:[e.uuid]})}async refreshStore(e,s){const a={},c=await this.enqueueRequest({description:"Get licenses",method:h.GET,url:`/organizations/${s}/licenses/`,isAuthNeeded:!0,blockers:[s],blocks:["add-issue","add-form-entry","change-access-level","add-workspace"]});for(const r of c)a[r.uuid]=r;const n=await this.enqueueRequest({description:"Get licenses",method:h.GET,url:`/projects/${e}/licenses/`,isAuthNeeded:!0,blockers:[e],blocks:["add-issue","add-form-entry","change-access-level","add-workspace"]});for(const r of n)a[r.uuid]=r;this.dispatch(Il(Object.values(a)))}}class lb extends O{async update(e){const s=this.enqueueRequest({description:"Edit organization access",method:h.PATCH,url:`/organization-accesses/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return s.then(()=>{this.dispatch(Ml(e))}),s}async remove(e){return this.dispatch(Vl(e.uuid)),this.dispatch(wl(e.user)),this.enqueueRequest({description:"Remove organization access",method:h.DELETE,url:`/organization-accesses/${e.uuid}/`,blockers:[e.uuid],blocks:[]})}async refreshStore(e){const s=await this.enqueueRequest({description:"Get organization accesses",method:h.GET,url:"/organization-accesses/",queryParams:{organization:e},blockers:[],blocks:[]});this.dispatch(jl(s))}}class hb extends O{create(e){return this.enqueueRequest({description:"Create organization",method:h.POST,url:"/organizations/",payload:{name:e},blockers:[],blocks:[`add-org-${e}`,"create-org"]})}async update(e){return this.enqueueRequest({description:"Edit organization",method:h.PATCH,url:`/organizations/${e.uuid}/`,payload:e,blockers:[`add-org-${e.name}`,e.uuid],blocks:[e.uuid]})}async invite(e,s){return this.enqueueRequest({description:"Invite user to organization",method:h.POST,url:`/organizations/${e}/invite/${s}/`,blockers:[],blocks:[]})}async refreshStore(e,s){const a={},c=await this.enqueueRequest({description:"Get organizations",method:h.GET,url:`/projects/${e}/organizations/`,blockers:[],blocks:[]});for(const r of c)a[r.uuid]=r;const n=await this.enqueueRequest({description:"Get organization",method:h.GET,url:`/organizations/${s}/`,blockers:[],blocks:[]});a[n.uuid]=n,this.dispatch(xl(Object.values(a)))}}class mb extends O{async update(e){return this.dispatch(Dl(e)),this.enqueueRequest({description:"Edit project access",method:h.PATCH,url:`/project-accesses/${e.uuid}/`,payload:e,blockers:[e.uuid,"change-access-level"],blocks:[e.uuid]})}async remove(e){return this.dispatch(Ul(e)),this.enqueueRequest({description:"Delete project access",method:h.DELETE,url:`/project-accesses/${e}/`,blockers:[e],blocks:[]})}async refreshStore(e){const s=await this.enqueueRequest({description:"Get project accesses",method:h.GET,url:"/project-accesses/",queryParams:{project:e},blockers:[],blocks:[]});this.dispatch(ka(s))}}class pb extends Ie{constructor(){super(...arguments);f(this,"name","Project Attachment");f(this,"url","/project-attachments");f(this,"addAttachments",mh);f(this,"updateAttachments",yh);f(this,"removeAttachments",Ba);f(this,"removeAttachment",fh);f(this,"setAttachment",ph);f(this,"selectAttachment",bh)}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(a=>({modelUuid:a.projectUuid,file:a.file})))}async delete(s){return this._delete(s)}async refreshStore(s){const a=await this.enqueueRequest({description:"Get project attachments",method:h.GET,url:`${this.url}/`,queryParams:{project:s},blockers:[],blocks:[]});this.dispatch(hh(a))}}class Ab extends O{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 a=this.enqueueRequest({method:h.PATCH,url:`/projects/files/${e.uuid}/`,payload:s,blockers:[e.uuid],blocks:[e.uuid]});return a.then(c=>{this.dispatch(La(c))}),a}saveActive(){const{store:e}=this.client,s=e.getState(),a=s.projectFileReducer.activeProjectFileId;if(!a)throw new Error("No active project file");const c=s.projectFileReducer.instances[a];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:`/projects/files/${a}/`,payload:m,blockers:[a],blocks:[a]}}else n=new Promise((m,d)=>{this.client.files.uploadFileToS3(c.file_sha1).then(([o])=>{m({method:h.POST,url:`/projects/${c.project}/files/`,payload:{...c,...o},blockers:[a],blocks:[a]})}).catch(d)});const u=Promise.resolve(n).then(m=>this.enqueueRequest(m));return u.then(m=>{this.dispatch(La(m))}),this.dispatch(Eh),this.dispatch(wh(null)),this.dispatch(vh(!1)),[c,u]}delete(e){return this.dispatch(Oh(e)),this.enqueueRequest({method:h.DELETE,url:`/projects/files/${e}`,blockers:[e],blocks:[]})}async refreshStore(e){const s=await this.enqueueRequest({description:"Get project files",method:h.GET,url:`/projects/${e}/files/`,blockers:[],blocks:[]});this.dispatch(Ih(s))}}class yb extends O{async add(e){if(!e.bounds&&!e.canvas_bounds)throw new Error("Project must either have bounds or canvas_bounds set");return await this.enqueueRequest({description:"Create project",method:h.POST,url:"/projects/",payload:{name:e.name,bounds:e.bounds,organization_owner:e.organization_owner},blockers:[],blocks:[]})}async update(e){if(!e.bounds&&!e.canvas_bounds)throw new Error("Project must either have bounds or canvas_bounds set");return this.dispatch(Wl(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,a=s.getState(),c=Dt(a),n=c[e];if(!n)throw new Error("Expected project to exist");const r=jh(a).filter(o=>o.project===e);this.dispatch(_h(r.map(({uuid:o})=>o)));const u=Ph(n.uuid)(a);this.dispatch(Ba(u.map(({uuid:o})=>o)));const m=Bl(a);this.dispatch($l(m.map(({uuid:o})=>o))),this.dispatch({type:"rehydrated/setRehydrated",payload:!1}),this.dispatch(Kl(n.uuid));const d=Rl(n.uuid)(a);d&&this.dispatch(Pe({...d,project:null}));try{await this.enqueueRequest({description:"Delete project",method:h.DELETE,url:`/projects/${e}/`,blockers:[e],blocks:[]}),this.dispatch({type:"rehydrated/setRehydrated",payload:!0})}catch(o){throw this.dispatch(Hl(Object.values(c))),this.dispatch(ka(Object.values(m))),this.dispatch(Rh(r)),this.dispatch(Ah(u)),this.dispatch({type:"rehydrated/setRehydrated",payload:!0}),d&&this.dispatch(Pe({...d,project:n.uuid})),o}}invite(e,s){const a=Re.v4();return this.enqueueRequest({description:"Invite user to project",method:h.POST,url:`/projects/${e}/invite/${s}/`,payload:{uuid:a},blockers:[],blocks:[a]})}joinProject(e,s,a){return this.enqueueRequest({description:"Join project",method:h.GET,url:`/projects/${e}/join-project/${s}/${a}/`,isAuthNeeded:!1,blockers:[],blocks:[]})}async acceptInvite(e){return this.enqueueRequest({description:"Accept project invite",method:h.PATCH,url:`/projects/${e}/accept-invite/`,blockers:[e],blocks:[e]}).then(()=>{this.dispatch(Yl(e))})}}class fb extends tm{clearAuth(){super.clearAuth(),sessionStorage.clear()}async handleUnauthorized(e,s){const a=`${this.loginUrl}?next=${encodeURI(window.location.href)}`;window.location.replace(a)}prepareRequest(e){return e.withCredentials(!0)}}class Sb extends O{add(e){const s=T({...e,submitted_at:new Date().toISOString()});this.dispatch(Ch(s));const a=this.enqueueRequest({description:"Create team",method:h.POST,url:"/teams/",payload:s,blockers:[],blocks:[s.uuid]});return a.then(c=>{this.dispatch($e(c))}).catch(()=>{this.dispatch(Ka(s.uuid))}),[s,a]}update(e){const{store:s}=this.client,a=Be(e.uuid)(s.getState());if(!a)throw new Error(`Expected team with uuid ${e.uuid} to exist`);const c={...a,...e};this.dispatch(Wa(c));const n=this.enqueueRequest({description:"Update team",method:h.PATCH,url:`/teams/${e.uuid}/`,payload:_(e),blockers:[e.uuid],blocks:[e.uuid]});return n.then(r=>{this.dispatch($e(r))}).catch(()=>{this.dispatch($e(a))}),[c,n]}async delete(e){const{store:s}=this.client,a=s.getState(),c=Be(e)(a);if(!c)throw new Error(`Expected team with uuid ${e} to exist`);this.dispatch(Ka(e));try{return await this.enqueueRequest({description:"Delete team",method:h.DELETE,url:`/teams/${e}/`,blockers:[e],blocks:[e]})}catch(n){throw this.dispatch($e(c)),n}}async setMembers(e,s){const{store:a}=this.client,c=Be(e)(a.getState());if(!c)throw new Error(`Expected team with uuid ${e} to exist`);if(s.length!==new Set(s).size)throw new Error("Duplicate members found in the list");this.dispatch(Wa({...c,members:s}));const n=this.enqueueRequest({description:"Set team members",method:h.PUT,url:`/teams/${e}/set-members/`,payload:{users:s},blockers:[e],blocks:[e]});return n.catch(()=>{this.dispatch($e(c))}),n}async addMembers(e,s){const{store:a}=this.client,c=Be(e)(a.getState());if(!c)throw new Error(`Expected team with uuid ${e} to exist`);const n=[...c.members,...s];return this.setMembers(e,n)}async removeMembers(e,s){const{store:a}=this.client,c=Be(e)(a.getState());if(!c)throw new Error(`Expected team with uuid ${e} to exist`);const n=c.members.filter(r=>!s.includes(r));return this.setMembers(e,n)}async refreshStore(e){const s=await this.enqueueRequest({description:"Fetch teams",method:h.GET,url:"/teams/",queryParams:{organization:e},blockers:[],blocks:[]});this.dispatch(zh(s))}}class gb extends O{async refreshStore(e,s){const a={},c=await this.enqueueRequest({description:"Fetch organization users",method:h.GET,url:`/organizations/${s}/users/`,blockers:[],blocks:[]});for(const r of c)a[r.id]=r;const n=await this.enqueueRequest({description:"Fetch project users",method:h.GET,url:`/projects/${e}/users/`,blockers:[],blocks:[]});for(const r of n)a[r.id]=r;this.dispatch(vl(Object.values(a)))}}class bb{constructor(e){f(this,"store");this.store=e}async enqueueRequest(e,s,a){return this._enqueueRequest(e,s,a).then(c=>{if(c instanceof M)throw c;return c})}_enqueueRequest(e,s,a){const c=new hc,n={...e,BASE_URL:s,serviceName:a};if(e.immediate){const r={...n,uuid:e.uuid??Re.v4()},u={payload:r,type:"",meta:{offline:{effect:{timestamp:new Date().toISOString(),request:r,BASE_URL:s,serviceName:a}}}};Za(u,this).then(m=>{c.resolve(m.body)}).catch(m=>{xa(m,u),m instanceof Error?c.reject(m):c.reject(new Error((m??Ge).toString()))})}else{const r=this.store.dispatch(rh(n)),u=d=>{if(d)c.resolve(d.body);else{const o=new M({message:"Could not get a response from the server.",response:d,discard:!0});c.reject(o)}},m=d=>{d instanceof M?d.options.discard=!0:(console.error("Received an unexpected error while processing a request:",d,`
|
|
15
|
-
Converting error to APIError and discarding.`),d=new M({message:"An error occurred while processing the request.",innerError:d,discard:!0})),c.reject(d)};r.then(u,m)}return c}}class Le{constructor(){f(this,"graph");f(this,"requestAttemptCounter");this.graph=new lm.DepGraph,this.requestAttemptCounter={}}static _fromOutbox(e){const s=new Le;for(let a=0;a<e.length;a++){const c=e[a];if(!c){console.error("Outbox item was undefined");continue}s.sneakRequest(c);for(let n=0;n<a;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(u=>c.payload.blockers.includes(u))&&Le._addDependency(c.payload.uuid,r.payload.uuid,s.graph)}}return s}_addDependency(e,s){Le._addDependency(e,s,this.graph)}static _addDependency(e,s,a){if(e===s)throw new Error(`Tried to add dependency from node to itself: ${e}`);if(!a.hasNode(e))throw new Error(`Tried to add dependency from non-existent node: ${e} (to node: ${s})`);if(!a.hasNode(s))throw new Error(`Tried to add dependency to non-existent node: ${s} (from node: ${e})`);a.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 a=this.graph.getNodeData(s);e.payload.blockers.some(c=>a.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,a;for(const c of e){const n=this.requestAttemptCounter[c]||0;n<s&&(s=n,a=c)}return a}peek(){const e=this._getNextNode();if(e)return this.graph.getNodeData(e)}remove(e){this.graph.removeNode(e),delete this.requestAttemptCounter[e]}pop(){const e=this.peek();return e&&this.graph.removeNode(e.payload.uuid),e}getQueue(){const e=this.graph.overallOrder().map(a=>this.graph.getNodeData(a)),s=this._getNextNode();if(s){const a=this.graph.getNodeData(s),c=e.findIndex(n=>n.payload.uuid===a.payload.uuid);c!==-1&&(e.splice(c,1),e.unshift(a))}return e}getReady(){let e=this.graph.overallOrder(!0).map(s=>this.graph.getNodeData(s));return e=e.sort((s,a)=>s.meta.offline.effect.timestamp.localeCompare(a.meta.offline.effect.timestamp)),e=e.sort((s,a)=>{const c=this.requestAttemptCounter[s.payload.uuid]||0,n=this.requestAttemptCounter[a.payload.uuid]||0;return c-n}),e}registerRetry(e){this.requestAttemptCounter[e]=(this.requestAttemptCounter[e]||0)+1}}const Pb=(t,e)=>{const s=new e(t);return KS(s),WS(t),s};var sm=(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))(sm||{});i.APIError=M,i.AgentService=mg,i.AssetAttachmentService=pg,i.AssetProcedureAttachmentService=Ag,i.AssetProcedureFieldValuesAttachmentService=Sg,i.AssetProcedureFieldValuesService=gg,i.AssetProcedureFieldsAttachmentService=yg,i.AssetProcedureFieldsService=fg,i.AssetProcedureInstanceService=bg,i.AssetProcedureService=Pg,i.AssetProcedureStepFieldValuesAttachmentService=Ig,i.AssetProcedureStepFieldValuesService=Rg,i.AssetProcedureStepFieldsAttachmentService=Fg,i.AssetProcedureStepFieldsService=Tg,i.AssetProcedureStepService=Og,i.AssetService=_g,i.AssetStageCompletionService=vg,i.AssetStageService=wg,i.AssetTypeAttachmentService=Eg,i.AssetTypeFieldValuesAttachmentService=Mg,i.AssetTypeFieldValuesService=Vg,i.AssetTypeFieldsAttachmentService=qg,i.AssetTypeFieldsService=jg,i.AssetTypeService=kg,i.AttachmentModel=nc,i.BaseApiService=O,i.BaseSDK=bb,i.COMMON_AUTO_FIELDS=fc,i.CategoryService=zg,i.DEFAULT_ISSUE_PRIORITY=mm,i.DEFAULT_ISSUE_STATUS=hm,i.DeferredPromise=hc,i.DocumentAttachmentService=Cg,i.DocumentService=Dg,i.EMPTY_ARRAY=ac,i.EMPTY_OBJECT=cc,i.EmailDomainsService=Ug,i.EmailVerificationService=$g,i.FileService=Gg,i.FormRevisionAttachmentService=Lg,i.FormRevisionService=Ng,i.FormService=Hg,i.FormSubmissionAttachmentService=Wg,i.FormSubmissionService=Kg,i.GeoImageService=Yg,i.HttpMethod=h,i.IssueAssociationService=Jg,i.IssueAttachmentService=Xg,i.IssueCommentAttachmentService=Qg,i.IssueCommentService=Zg,i.IssuePriority=Lt,i.IssueService=xg,i.IssueStatus=Nt,i.IssueTypeAttachmentService=eb,i.IssueTypeFieldValuesAttachmentService=ib,i.IssueTypeFieldValuesService=ab,i.IssueTypeFieldsAttachmentService=tb,i.IssueTypeFieldsService=sb,i.IssueTypeService=cb,i.IssueUpdateChange=v,i.IssueUpdateService=nb,i.JWTAuthService=ub,i.LicenseLevel=dc,i.LicenseService=ob,i.LicenseStatus=uc,i.OUTBOX_RETRY_DELAY=oc,i.OrganizationAccessLevel=Gt,i.OrganizationAccessService=lb,i.OrganizationService=hb,i.OutboxCoordinator=Le,i.PaddleCheckoutEvent=rc,i.ProjectAccessLevel=Bt,i.ProjectAccessService=mb,i.ProjectAttachmentService=pb,i.ProjectFileService=Ab,i.ProjectService=yb,i.SessionAuthService=fb,i.TeamService=Sb,i.UNKNOWN_ERROR_MESSAGE=Ge,i.UserService=gb,i.VERSION_REDUCER_KEY=Ne,i.VerificationCodeType=sm,i._setLatestRetryTime=uh,i.acceptProjectInvite=Yl,i.addAsset=Bs,i.addAssetAttachment=Um,i.addAssetAttachments=xt,i.addAssetProcedure=gs,i.addAssetProcedureAttachment=Gm,i.addAssetProcedureAttachments=Cc,i.addAssetProcedureFieldValues=ds,i.addAssetProcedureFieldValuesAttachment=rp,i.addAssetProcedureFieldValuesAttachments=dt,i.addAssetProcedureFieldValuesMany=fn,i.addAssetProcedureFields=sn,i.addAssetProcedureFieldsAttachment=Wm,i.addAssetProcedureFieldsAttachments=Yc,i.addAssetProcedureFieldsMany=xm,i.addAssetProcedureInstance=ms,i.addAssetProcedureInstances=In,i.addAssetProcedureStep=iA,i.addAssetProcedureStepFieldValues=js,i.addAssetProcedureStepFieldValuesAttachment=Hp,i.addAssetProcedureStepFieldValuesAttachments=ot,i.addAssetProcedureStepFieldValuesMany=Zn,i.addAssetProcedureStepFields=Rs,i.addAssetProcedureStepFieldsAttachment=wp,i.addAssetProcedureStepFieldsAttachments=Vn,i.addAssetProcedureStepFieldsMany=zp,i.addAssetProcedureSteps=zs,i.addAssetProcedures=Fp,i.addAssetStage=mA,i.addAssetStageCompletion=Ys,i.addAssetStageCompletions=Js,i.addAssetStages=ei,i.addAssetType=fi,i.addAssetTypeAttachment=fA,i.addAssetTypeAttachments=ci,i.addAssetTypeFieldValues=hi,i.addAssetTypeFieldValuesAttachment=kA,i.addAssetTypeFieldValuesAttachments=gt,i.addAssetTypeFieldValuesMany=rd,i.addAssetTypeFields=Kr,i.addAssetTypeFieldsAttachment=bA,i.addAssetTypeFieldsAttachments=Ur,i.addAssetTypeFieldsMany=_A,i.addAssetTypes=KA,i.addAssets=At,i.addCategory=Fi,i.addConversation=Fc,i.addDocumentAttachment=cy,i.addDocumentAttachments=Rd,i.addDocuments=zd,i.addEmailDomain=Gd,i.addForm=ki,i.addFormRevision=ji,i.addFormRevisionAttachment=Ay,i.addFormRevisionAttachments=eu,i.addFormRevisions=du,i.addFormSubmission=$i,i.addFormSubmissionAttachment=vy,i.addFormSubmissionAttachments=It,i.addFormSubmissions=_t,i.addForms=Ry,i.addGeoImage=Vu,i.addGeoImages=ku,i.addIssue=la,i.addIssueAssociation=Ji,i.addIssueAssociations=Xi,i.addIssueAttachment=By,i.addIssueAttachments=ta,i.addIssueComment=ra,i.addIssueCommentAttachment=Ny,i.addIssueCommentAttachments=co,i.addIssueComments=Yy,i.addIssueType=ul,i.addIssueTypeAttachment=Zy,i.addIssueTypeAttachments=Oo,i.addIssueTypeFieldValues=Sa,i.addIssueTypeFieldValuesAttachment=Rf,i.addIssueTypeFieldValuesAttachments=qt,i.addIssueTypeFieldValuesMany=of,i.addIssueTypeFields=Jo,i.addIssueTypeFieldsAttachment=sf,i.addIssueTypeFieldsAttachments=Co,i.addIssueTypeFieldsMany=yf,i.addIssueUpdate=yl,i.addIssueUpdates=fl,i.addIssues=Po,i.addLicenses=kf,i.addOrganization=pS,i.addOrganizations=mS,i.addProject=cS,i.addProjectAttachment=_S,i.addProjectAttachments=mh,i.addProjectFile=qS,i.addProjectFiles=Rh,i.addProjects=aS,i.addTeam=Ch,i.addUser=Gf,i.addUsers=Bf,i.agentsReducer=Rc,i.agentsSlice=Jt,i.areArraysEqual=gm,i.assetAttachmentReducer=Vc,i.assetAttachmentSlice=Qt,i.assetProcedureAttachmentReducer=Hc,i.assetProcedureAttachmentSlice=ts,i.assetProcedureFieldValuesAttachmentReducer=pn,i.assetProcedureFieldValuesAttachmentSlice=cs,i.assetProcedureFieldValuesReducer=Pn,i.assetProcedureFieldValuesSlice=rs,i.assetProcedureFieldsAttachmentReducer=xc,i.assetProcedureFieldsAttachmentSlice=ss,i.assetProcedureFieldsReducer=rn,i.assetProcedureFieldsSlice=is,i.assetProcedureInstanceReducer=_n,i.assetProcedureInstanceSlice=hs,i.assetProcedureReducer=qn,i.assetProcedureSlice=Ss,i.assetProcedureStepFieldValuesAttachmentReducer=Jn,i.assetProcedureStepFieldValuesAttachmentSlice=ws,i.assetProcedureStepFieldValuesReducer=sr,i.assetProcedureStepFieldValuesSlice=qs,i.assetProcedureStepFieldsAttachmentReducer=Un,i.assetProcedureStepFieldsAttachmentSlice=Ts,i.assetProcedureStepFieldsReducer=Gn,i.assetProcedureStepFieldsSlice=Is,i.assetProcedureStepReducer=nr,i.assetProcedureStepSlice=ks,i.assetReducer=mr,i.assetSlice=$s,i.assetStageCompletionReducer=Sr,i.assetStageCompletionSlice=Ks,i.assetStageReducer=Ir,i.assetStageSlice=xs,i.assetTypeAttachmentReducer=zr,i.assetTypeAttachmentSlice=ai,i.assetTypeFieldValuesAttachmentReducer=ad,i.assetTypeFieldValuesAttachmentSlice=ui,i.assetTypeFieldValuesReducer=ld,i.assetTypeFieldValuesSlice=li,i.assetTypeFieldsAttachmentReducer=Nr,i.assetTypeFieldsAttachmentSlice=ri,i.assetTypeFieldsReducer=Qr,i.assetTypeFieldsSlice=di,i.assetTypeReducer=pd,i.assetTypeSlice=yi,i.authReducer=fd,i.authSlice=Pt,i.baseReducer=NS,i.baseReducers=Xa,i.blobToBase64=vm,i.categoryReducer=Fd,i.categorySlice=Pi,i.clearTokens=xA,i.constructUploadedFilePayloads=_m,i.coordinatesAreEqual=fm,i.createModelAdapter=F,i.createMultiPointGeometry=ym,i.createOfflineAction=ch,i.createPayload=_,i.createPointGeometry=Am,i.createSelectionAdapter=pm,i.deleteAsset=Gs,i.deleteAssetAttachment=wc,i.deleteAssetAttachments=es,i.deleteAssetProcedure=bs,i.deleteAssetProcedureAttachment=$c,i.deleteAssetProcedureAttachments=Bc,i.deleteAssetProcedureFieldValues=us,i.deleteAssetProcedureFieldValuesAttachment=lp,i.deleteAssetProcedureFieldValuesAttachments=ut,i.deleteAssetProcedureFieldValuesMany=gn,i.deleteAssetProcedureFields=cn,i.deleteAssetProcedureFieldsAttachment=Xm,i.deleteAssetProcedureFieldsAttachments=Xc,i.deleteAssetProcedureFieldsMany=ip,i.deleteAssetProcedureInstance=ps,i.deleteAssetProcedureInstances=Rn,i.deleteAssetProcedureStep=aA,i.deleteAssetProcedureStepFieldValues=Ms,i.deleteAssetProcedureStepFieldValuesAttachment=Jp,i.deleteAssetProcedureStepFieldValuesAttachments=lt,i.deleteAssetProcedureStepFieldValuesMany=er,i.deleteAssetProcedureStepFields=Os,i.deleteAssetProcedureStepFieldsAttachment=Mp,i.deleteAssetProcedureStepFieldsAttachments=zn,i.deleteAssetProcedureStepFieldsMany=$p,i.deleteAssetProcedureSteps=Ds,i.deleteAssetProcedures=Ip,i.deleteAssetStage=pA,i.deleteAssetStageCompletion=Xs,i.deleteAssetStageCompletions=Qs,i.deleteAssetStages=si,i.deleteAssetType=Si,i.deleteAssetTypeAttachment=qr,i.deleteAssetTypeAttachments=ni,i.deleteAssetTypeFieldValues=mi,i.deleteAssetTypeFieldValuesAttachment=UA,i.deleteAssetTypeFieldValuesAttachments=bt,i.deleteAssetTypeFieldValuesMany=ud,i.deleteAssetTypeFields=Jr,i.deleteAssetTypeFieldsAttachment=IA,i.deleteAssetTypeFieldsAttachments=Br,i.deleteAssetTypeFieldsMany=qA,i.deleteAssetTypes=JA,i.deleteAssets=Ls,i.deleteCategory=Pd,i.deleteDocumentAttachment=vd,i.deleteDocumentAttachments=wd,i.deleteEmailDomain=Ld,i.deleteForm=zi,i.deleteFormRevision=Mi,i.deleteFormRevisionAttachment=gy,i.deleteFormRevisionAttachments=su,i.deleteFormRevisions=uu,i.deleteFormSubmission=Bi,i.deleteFormSubmissionAttachment=jy,i.deleteFormSubmissionAttachments=Rt,i.deleteFormSubmissions=vt,i.deleteGeoImage=Wi,i.deleteGeoImages=Cu,i.deleteIssue=ha,i.deleteIssueAssociation=Qi,i.deleteIssueAssociations=Zi,i.deleteIssueAttachment=Zu,i.deleteIssueAttachments=sa,i.deleteIssueComment=da,i.deleteIssueCommentAttachment=uo,i.deleteIssueCommentAttachments=oo,i.deleteIssueComments=Jy,i.deleteIssueTypeAttachment=wo,i.deleteIssueTypeAttachments=Eo,i.deleteIssueTypeFieldValues=ga,i.deleteIssueTypeFieldValuesAttachment=wf,i.deleteIssueTypeFieldValuesAttachments=jt,i.deleteIssueTypeFieldValuesMany=pf,i.deleteIssueTypeFields=Qo,i.deleteIssueTypeFieldsAttachment=rf,i.deleteIssueTypeFieldsAttachments=Uo,i.deleteIssueTypeFieldsMany=bf,i.deleteIssueUpdate=Sl,i.deleteIssueUpdates=gl,i.deleteIssues=Fo,i.deleteOrganization=fS,i.deleteOrganizationAccess=Vl,i.deleteOrganizations=SS,i.deleteProject=Kl,i.deleteProjectAccess=Ul,i.deleteProjectAccesses=$l,i.deleteProjectAttachment=fh,i.deleteProjectAttachments=Ba,i.deleteProjectFile=Oh,i.deleteProjectFiles=_h,i.deleteProjects=rS,i.deleteTeam=Ka,i.deleteUser=Hf,i.deleteUsers=Wf,i.dequeue=Qh,i.discard=xa,i.documentAttachmentReducer=Md,i.documentAttachmentSlice=Ri,i.documentSlice=Oi,i.documentsReducer=$d,i.downloadFile=wm,i.downloadInMemoryFile=Om,i.emailDomainsReducer=Wd,i.emailDomainsSlice=vi,i.emailRegex=zm,i.enqueue=Xh,i.enqueueRequest=rh,i.fallbackToEmptyArray=g,i.fallbackToEmptyObject=Oe,i.fileReducer=Qd,i.fileSlice=wi,i.fileToBlob=Ac,i.formReducer=Au,i.formRevisionAttachmentReducer=au,i.formRevisionAttachmentSlice=Ei,i.formRevisionReducer=hu,i.formRevisionsSlice=qi,i.formSlice=Vi,i.formSubmissionAttachmentReducer=Tu,i.formSubmissionAttachmentSlice=Ci,i.formSubmissionReducer=Eu,i.formSubmissionSlice=Ui,i.geoImageReducer=$u,i.geoImageSlice=Hi,i.getFileIdentifier=Rm,i.getFileS3Key=Yt,i.getLocalDateString=mc,i.getLocalRelativeDateString=Tm,i.getOutboxCoordinator=je,i.getRenamedFile=pc,i.hashFile=ze,i.initSDK=Pb,i.initializeAssetAttachments=Zt,i.initializeAssetProcedureAttachments=zc,i.initializeAssetProcedureFieldValues=yn,i.initializeAssetProcedureFieldValuesAttachments=un,i.initializeAssetProcedureFields=tn,i.initializeAssetProcedureFieldsAttachments=Kc,i.initializeAssetProcedureInstances=Tn,i.initializeAssetProcedureStepFieldValues=Qn,i.initializeAssetProcedureStepFieldValuesAttachments=Nn,i.initializeAssetProcedureStepFields=Bn,i.initializeAssetProcedureStepFieldsAttachments=Mn,i.initializeAssetProcedureSteps=ar,i.initializeAssetProcedures=wn,i.initializeAssetStageCompletions=Ar,i.initializeAssetStages=Fr,i.initializeAssetTypeAttachments=vr,i.initializeAssetTypeFieldValues=nd,i.initializeAssetTypeFieldValuesAttachments=xr,i.initializeAssetTypeFields=Wr,i.initializeAssetTypeFieldsAttachments=Dr,i.initializeAssetTypes=md,i.initializeAssets=or,i.initializeCategories=gd,i.initializeConversations=Pc,i.initializeDocumentAttachments=Id,i.initializeEmailDomains=Bd,i.initializeFormRevisionAttachments=xd,i.initializeFormRevisions=ru,i.initializeFormSubmissionAttachments=gu,i.initializeFormSubmissions=Ru,i.initializeForms=pu,i.initializeGeoImages=ju,i.initializeIssueAssociations=Gu,i.initializeIssueAttachments=ea,i.initializeIssueCommentAttachments=aa,i.initializeIssueTypeAttachments=Aa,i.initializeIssueTypeFieldValues=No,i.initializeIssueTypeFieldValuesAttachments=tl,i.initializeIssueTypeFields=Yo,i.initializeIssueTypeFieldsAttachments=zo,i.initializeIssueTypes=dl,i.initializeIssueUpdates=Al,i.initializeIssues=bo,i.initializeLicences=Il,i.initializeOrganizationAccesses=jl,i.initializeOrganizations=lS,i.initializeProjectAccesses=ka,i.initializeProjectAttachments=hh,i.initializeProjectFiles=Ih,i.initializeProjects=sS,i.initializeTeams=zh,i.initializeUsers=vl,i.isToday=Fm,i.issueAssociationReducer=Yu,i.issueAssociationSlice=Yi,i.issueAttachmentReducer=io,i.issueAttachmentSlice=xi,i.issueCommentAttachmentReducer=po,i.issueCommentAttachmentSlice=ia,i.issueCommentReducer=So,i.issueCommentSlice=ca,i.issueReducer=Io,i.issueSlice=oa,i.issueTypeAttachmentReducer=Vo,i.issueTypeAttachmentSlice=pa,i.issueTypeFieldValuesAttachmentReducer=nl,i.issueTypeFieldValuesAttachmentSlice=Ta,i.issueTypeFieldValuesReducer=Wo,i.issueTypeFieldValuesSlice=fa,i.issueTypeFieldsAttachmentReducer=Go,i.issueTypeFieldsAttachmentSlice=ya,i.issueTypeFieldsReducer=xo,i.issueTypeFieldsSlice=Fa,i.issueTypeReducer=ml,i.issueTypeSlice=Ra,i.issueUpdateReducer=Fl,i.issueUpdateSlice=wa,i.licenseReducer=Ol,i.licenseSlice=Ea,i.logOnlyOnce=Em,i.markAsDeleted=dh,i.markForDeletion=OS,i.memoize=Wt,i.moveDocument=Cd,i.offline=T,i.onlyUniqueHashes=km,i.onlyUniqueOfflineIds=gc,i.organizationAccessReducer=zl,i.organizationAccessSlice=ja,i.organizationReducer=ah,i.organizationSlice=Da,i.outboxReducer=oh,i.outboxSlice=Ua,i.overmapEnhancer=sg,i.overmapReducer=HS,i.overmapReducers=Bh,i.performRequest=Za,i.projectAccessReducer=Ll,i.projectAccessSlice=Va,i.projectAttachmentReducer=Fh,i.projectAttachmentSlice=$a,i.projectFileReducer=Mh,i.projectFileSlice=Ga,i.projectReducer=Jl,i.projectSlice=Ca,i.rehydratedReducer=Vh,i.rehydratedSlice=Na,i.removeDocuments=_i,i.removeIssueType=Oa,i.removeUser=wl,i.resetProjectFileObjectUrls=MS,i.resetStore=lc,i.restructureCreateSelectorWithArgs=S,i.saveActiveProjectFileBounds=Eh,i.selectAccessToken=ey,i.selectActiveOrganizationAccess=Zf,i.selectActiveProjectFileId=kS,i.selectActiveStatusLicenses=Cf,i.selectAllDocumentAttachments=qd,i.selectAllProjectAttachments=gh,i.selectAncestorIdsOfDocument=oy,i.selectAssetAttachmentById=jc,i.selectAssetAttachmentMapping=Ec,i.selectAssetAttachments=qc,i.selectAssetById=Ws,i.selectAssetProcedureAttachmentById=Nc,i.selectAssetProcedureAttachmentMapping=Gc,i.selectAssetProcedureAttachments=Lc,i.selectAssetProcedureById=Fs,i.selectAssetProcedureFieldValues=os,i.selectAssetProcedureFieldValuesAttachmentById=hp,i.selectAssetProcedureFieldValuesAttachments=ln,i.selectAssetProcedureFieldValuesAttachmentsByIds=hn,i.selectAssetProcedureFieldValuesAttachmentsMapping=ns,i.selectAssetProcedureFieldValuesById=ls,i.selectAssetProcedureFieldValuesMapping=bn,i.selectAssetProcedureFieldValuesOfAsset=Ap,i.selectAssetProcedureFields=as,i.selectAssetProcedureFieldsAttachmentById=Zm,i.selectAssetProcedureFieldsAttachments=Zc,i.selectAssetProcedureFieldsAttachmentsMapping=Qc,i.selectAssetProcedureFieldsById=np,i.selectAssetProcedureFieldsMapping=nn,i.selectAssetProcedureFieldsOfAssetProcedure=ap,i.selectAssetProcedureInstanceById=fs,i.selectAssetProcedureInstances=ys,i.selectAssetProcedureInstancesByIds=Pp,i.selectAssetProcedureInstancesMapping=As,i.selectAssetProcedureInstancesOfAssetProcedure=On,i.selectAssetProcedureInstancesOfAssetType=bp,i.selectAssetProcedureStepById=rr,i.selectAssetProcedureStepFieldValues=ht,i.selectAssetProcedureStepFieldValuesAttachmentById=Xp,i.selectAssetProcedureStepFieldValuesAttachments=Wn,i.selectAssetProcedureStepFieldValuesAttachmentsByIds=Kn,i.selectAssetProcedureStepFieldValuesAttachmentsMapping=Es,i.selectAssetProcedureStepFieldValuesById=Vs,i.selectAssetProcedureStepFieldValuesMapping=tr,i.selectAssetProcedureStepFieldValuesOfAsset=xp,i.selectAssetProcedureStepFieldValuesOfAssetProcedureInstance=eA,i.selectAssetProcedureStepFieldValuesOfAssetProcedureStep=tA,i.selectAssetProcedureStepFields=vs,i.selectAssetProcedureStepFieldsAttachmentById=kp,i.selectAssetProcedureStepFieldsAttachments=Dn,i.selectAssetProcedureStepFieldsAttachmentsMapping=Cn,i.selectAssetProcedureStepFieldsById=Np,i.selectAssetProcedureStepFieldsMapping=_s,i.selectAssetProcedureStepFieldsOfAssetProcedureStep=Bp,i.selectAssetProcedureStepMapping=pt,i.selectAssetProcedureSteps=dr,i.selectAssetProcedureStepsByIds=Us,i.selectAssetProcedureStepsMappingOfAssetProcedure=cA,i.selectAssetProcedureStepsOfAssetProcedure=nA,i.selectAssetProcedures=En,i.selectAssetProceduresByIds=vp,i.selectAssetProceduresMapping=Ps,i.selectAssetProceduresOfOrganization=_p,i.selectAssetStageById=Rr,i.selectAssetStageCompletionById=gr,i.selectAssetStageCompletionMapping=Zs,i.selectAssetStageCompletions=lA,i.selectAssetStageCompletionsByIds=br,i.selectAssetStages=Or,i.selectAssetStagesByIds=ii,i.selectAssetStagesMappingOfAssetProcedure=AA,i.selectAssetStagesOfAssetProcedure=yA,i.selectAssetTypeAttachmentById=Vr,i.selectAssetTypeAttachmentMapping=jr,i.selectAssetTypeAttachments=Mr,i.selectAssetTypeById=bi,i.selectAssetTypeFieldValues=pi,i.selectAssetTypeFieldValuesAttachmentById=$A,i.selectAssetTypeFieldValuesAttachments=td,i.selectAssetTypeFieldValuesAttachmentsByIds=sd,i.selectAssetTypeFieldValuesAttachmentsMapping=oi,i.selectAssetTypeFieldValuesById=Ai,i.selectAssetTypeFieldValuesMapping=od,i.selectAssetTypeFieldValuesOfAsset=LA,i.selectAssetTypeFields=St,i.selectAssetTypeFieldsAttachmentById=OA,i.selectAssetTypeFieldsAttachments=Lr,i.selectAssetTypeFieldsAttachmentsMapping=Gr,i.selectAssetTypeFieldsById=VA,i.selectAssetTypeFieldsMapping=Xr,i.selectAssetTypeFieldsOfAssetType=jA,i.selectAssetTypeValuesOfAssetType=NA,i.selectAssetTypes=XA,i.selectAssetTypesByIds=QA,i.selectAssetTypesMapping=gi,i.selectAssets=lr,i.selectAssetsByIds=hr,i.selectAssetsMapping=Ns,i.selectAssetsOfAssetType=Hs,i.selectAttachmentsOfAsset=Mc,i.selectAttachmentsOfAssetProcedure=Hm,i.selectAttachmentsOfAssetProcedureFieldValues=mn,i.selectAttachmentsOfAssetProcedureFields=Qm,i.selectAttachmentsOfAssetProcedureStepFieldValues=Yn,i.selectAttachmentsOfAssetProcedureStepFields=Vp,i.selectAttachmentsOfAssetType=kr,i.selectAttachmentsOfAssetTypeFieldValues=id,i.selectAttachmentsOfAssetTypeFields=RA,i.selectAttachmentsOfDocument=dy,i.selectAttachmentsOfFormRevision=by,i.selectAttachmentsOfFormSubmission=Fu,i.selectAttachmentsOfIssue=to,i.selectAttachmentsOfIssueComment=Ky,i.selectAttachmentsOfIssueType=tf,i.selectAttachmentsOfIssueTypeFieldValues=cl,i.selectAttachmentsOfIssueTypeFields=df,i.selectAttachmentsOfProject=Ph,i.selectCategories=sy,i.selectCategoriesByIds=iy,i.selectCategoryById=Ii,i.selectCategoryMapping=Ti,i.selectCommentsOfIssue=Xy,i.selectConversation=Dm,i.selectConversationMapping=Xt,i.selectConversations=Cm,i.selectCurrentUser=kt,i.selectDeletedRequests=IS,i.selectDocumentAttachmentById=jd,i.selectDocumentAttachmentMapping=Ed,i.selectDocumentById=Ud,i.selectDocuments=Dd,i.selectDocumentsByIds=uy,i.selectDocumentsMapping=Ce,i.selectEmailDomains=Hd,i.selectEmailDomainsAsMapping=Nd,i.selectEmailDomainsOfOrganization=my,i.selectFieldValuesOfAssetProcedureInstance=yp,i.selectFormById=fu,i.selectFormMapping=yu,i.selectFormRevisionAttachmentsMapping=iu,i.selectFormRevisionById=Fy,i.selectFormRevisionMapping=Tt,i.selectFormRevisions=ou,i.selectFormRevisionsOfForm=lu,i.selectFormSubmissionAttachemntsByIds=Pu,i.selectFormSubmissionAttachmentsMapping=Di,i.selectFormSubmissionById=Ni,i.selectFormSubmissions=Li,i.selectFormSubmissionsMapping=Gi,i.selectFormSubmissionsOfAsset=wu,i.selectFormSubmissionsOfForm=_u,i.selectFormSubmissionsOfIssue=vu,i.selectForms=_y,i.selectGeoImageById=Ki,i.selectGeoImageMapping=Du,i.selectGeoImages=Uu,i.selectGeoImagesOfProject=zy,i.selectIsImportingProjectFile=zS,i.selectIsLoggedIn=ty,i.selectIssueAssociationById=Nu,i.selectIssueAssociationMapping=st,i.selectIssueAssociations=$y,i.selectIssueAssociationsOfAsset=Ku,i.selectIssueAssociationsOfIssue=Wu,i.selectIssueAssociationsToIssue=Hu,i.selectIssueAttachmentById=so,i.selectIssueAttachmentMapping=xu,i.selectIssueAttachments=eo,i.selectIssueById=ma,i.selectIssueCommentAttachmentById=mo,i.selectIssueCommentAttachmentMapping=lo,i.selectIssueCommentAttachments=ho,i.selectIssueCommentById=ua,i.selectIssueCommentMapping=fo,i.selectIssueCountOfCategory=ay,i.selectIssueMapping=To,i.selectIssueTypeAttachmentById=Mo,i.selectIssueTypeAttachmentMapping=qo,i.selectIssueTypeAttachments=jo,i.selectIssueTypeById=_a,i.selectIssueTypeFieldValues=ba,i.selectIssueTypeFieldValuesAttachmentById=Ef,i.selectIssueTypeFieldValuesAttachments=il,i.selectIssueTypeFieldValuesAttachmentsByIds=al,i.selectIssueTypeFieldValuesAttachmentsMapping=Ia,i.selectIssueTypeFieldValuesById=Pa,i.selectIssueTypeFieldValuesMapping=Ho,i.selectIssueTypeFieldValuesOfIssue=Af,i.selectIssueTypeFields=Et,i.selectIssueTypeFieldsAttachmentById=uf,i.selectIssueTypeFieldsAttachments=Bo,i.selectIssueTypeFieldsAttachmentsMapping=$o,i.selectIssueTypeFieldsById=If,i.selectIssueTypeFieldsMapping=Zo,i.selectIssueTypeFieldsOfIssueType=Pf,i.selectIssueTypeMapping=ll,i.selectIssueTypeValuesOfIssueType=Tf,i.selectIssueTypes=hl,i.selectIssueTypesByIds=qf,i.selectIssueTypesOfOrganization=jf,i.selectIssueUpdateMapping=bl,i.selectIssueUpdatesOfIssue=Pl,i.selectIssuesByIds=Qy,i.selectIssuesOfIssueType=va,i.selectIssuesOfIssueTypeCount=Mf,i.selectLatestAssetProcedureFieldsOfAssetProcedure=cp,i.selectLatestAssetProcedureStepFieldsOfAssetProcedureStep=Gp,i.selectLatestAssetTypeFieldsOfAssetType=MA,i.selectLatestFieldsByAssetProcedureStep=Lp,i.selectLatestFormRevisionOfForm=Ty,i.selectLatestIssueTypeFieldsOfIssueType=Ff,i.selectLatestRetryTime=RS,i.selectLicense=zf,i.selectLicenseForProject=Rl,i.selectLicenses=Vt,i.selectLicensesForProjectsMapping=Df,i.selectLicensesOfOrganization=FS,i.selectNumberOfAssetsOfAssetType=oA,i.selectOrganizationAccessById=Qf,i.selectOrganizationAccessForUser=xf,i.selectOrganizationAccessUserMapping=kl,i.selectOrganizationAccesses=Ma,i.selectOrganizationById=gS,i.selectOrganizationUsersAsMapping=ih,i.selectOrganizationUsersIds=sh,i.selectOrganizations=th,i.selectOrganizationsMapping=eh,i.selectOrganizationsWithAccess=bS,i.selectProjectAccessById=eS,i.selectProjectAccessForUser=tS,i.selectProjectAccessMapping=za,i.selectProjectAccessUserMapping=Gl,i.selectProjectAccesses=Bl,i.selectProjectAttachmentById=bh,i.selectProjectAttachmentMapping=Sh,i.selectProjectById=uS,i.selectProjectFileById=VS,i.selectProjectFileMapping=qh,i.selectProjectFiles=jh,i.selectProjectMapping=Dt,i.selectProjectUsersAsMapping=Ql,i.selectProjectUsersIds=Xl,i.selectProjects=dS,i.selectProjectsOfOrganization=PS,i.selectRehydrated=US,i.selectRootDocuments=ly,i.selectSortedOrganizationUsers=TS,i.selectSortedProjectUsers=oS,i.selectStageMapping=ft,i.selectTeamById=Be,i.selectTeams=Ja,i.selectTeamsByIds=$S,i.selectTeamsMapping=Ya,i.selectTeamsOfOrganization=BS,i.selectTeamsOfUser=GS,i.selectUploadUrl=Xd,i.selectUserById=Jf,i.selectUsersByIds=Xf,i.selectUsersMapping=zt,i.setActiveProjectFileId=wh,i.setAsset=dA,i.setAssetAttachment=_c,i.setAssetAttachments=$m,i.setAssetProcedure=Rp,i.setAssetProcedureAttachment=Dc,i.setAssetProcedureAttachments=Lm,i.setAssetProcedureFieldValues=mp,i.setAssetProcedureFieldValuesAttachment=dp,i.setAssetProcedureFieldValuesAttachments=up,i.setAssetProcedureFieldValuesMany=pp,i.setAssetProcedureFields=ep,i.setAssetProcedureFieldsAttachment=Km,i.setAssetProcedureFieldsAttachments=Ym,i.setAssetProcedureFieldsMany=tp,i.setAssetProcedureInstance=Sp,i.setAssetProcedureInstances=gp,i.setAssetProcedureStep=cr,i.setAssetProcedureStepFieldValues=Qp,i.setAssetProcedureStepFieldValuesAttachment=Wp,i.setAssetProcedureStepFieldValuesAttachments=Kp,i.setAssetProcedureStepFieldValuesMany=Zp,i.setAssetProcedureStepFields=Cp,i.setAssetProcedureStepFieldsAttachment=Ep,i.setAssetProcedureStepFieldsAttachments=qp,i.setAssetProcedureStepFieldsMany=Dp,i.setAssetProcedureSteps=sA,i.setAssetProcedures=Op,i.setAssetStage=Tr,i.setAssetStages=hA,i.setAssetType=HA,i.setAssetTypeAttachment=wr,i.setAssetTypeAttachments=SA,i.setAssetTypeFieldValues=BA,i.setAssetTypeFieldValuesAttachment=zA,i.setAssetTypeFieldValuesAttachments=CA,i.setAssetTypeFieldValuesMany=GA,i.setAssetTypeFields=vA,i.setAssetTypeFieldsAttachment=PA,i.setAssetTypeFieldsAttachments=FA,i.setAssetTypeFieldsMany=wA,i.setAssetTypes=WA,i.setAssets=uA,i.setConversation=Tc,i.setCurrentUser=Kf,i.setDocumentAttachment=Od,i.setDocumentAttachments=ny,i.setDocuments=kd,i.setForm=Iy,i.setFormRevision=nu,i.setFormRevisionAttachment=yy,i.setFormRevisionAttachments=fy,i.setFormSubmission=Ot,i.setFormSubmissionAttachment=wy,i.setFormSubmissionAttachments=Ey,i.setFormSubmissions=My,i.setGeoImage=tt,i.setGeoImages=Mu,i.setIsImportingProjectFile=vh,i.setIssueAssociation=Dy,i.setIssueAssociations=Cy,i.setIssueAttachment=Xu,i.setIssueAttachments=Gy,i.setIssueComment=na,i.setIssueCommentAttachment=no,i.setIssueCommentAttachments=Hy,i.setIssueComments=yo,i.setIssueType=at,i.setIssueTypeAttachment=_o,i.setIssueTypeAttachments=xy,i.setIssueTypeFieldValues=lf,i.setIssueTypeFieldValuesAttachment=Of,i.setIssueTypeFieldValuesAttachments=_f,i.setIssueTypeFieldValuesMany=hf,i.setIssueTypeFields=ff,i.setIssueTypeFieldsAttachment=af,i.setIssueTypeFieldsAttachments=cf,i.setIssueTypeFieldsMany=Sf,i.setIssueUpdate=Vf,i.setLoggedIn=yd,i.setOrganization=hS,i.setOrganizations=xl,i.setProfilePicture=Yf,i.setProject=iS,i.setProjectAttachment=ph,i.setProjectAttachments=Ah,i.setProjectFile=wS,i.setProjectFiles=ES,i.setProjects=Hl,i.setRehydrated=DS,i.setTeam=$e,i.setTokens=ZA,i.setUploadUrl=Jd,i.setUser=$f,i.setUsers=Uf,i.shallowEqual=Sm,i.slugify=Mm,i.spacesToDashesLower=jm,i.teamReducer=Dh,i.teamSlice=Ha,i.toFileNameSafeString=qm,i.toOfflineIdRecord=Sc,i.truncate=Vm,i.updateAsset=Qe,i.updateAssetAttachment=Bm,i.updateAssetAttachments=vc,i.updateAssetProcedure=Ye,i.updateAssetProcedureAttachment=Nm,i.updateAssetProcedureAttachments=Uc,i.updateAssetProcedureFieldValues=We,i.updateAssetProcedureFieldValuesAttachment=op,i.updateAssetProcedureFieldValuesAttachments=on,i.updateAssetProcedureFieldValuesMany=Sn,i.updateAssetProcedureFields=an,i.updateAssetProcedureFieldsAttachment=Jm,i.updateAssetProcedureFieldsAttachments=Jc,i.updateAssetProcedureFieldsMany=sp,i.updateAssetProcedureInstance=Ke,i.updateAssetProcedureInstances=fp,i.updateAssetProcedureStep=Cs,i.updateAssetProcedureStepFieldValues=Xe,i.updateAssetProcedureStepFieldValuesAttachment=Yp,i.updateAssetProcedureStepFieldValuesAttachments=Hn,i.updateAssetProcedureStepFieldValuesMany=xn,i.updateAssetProcedureStepFields=Je,i.updateAssetProcedureStepFieldsAttachment=jp,i.updateAssetProcedureStepFieldsAttachments=kn,i.updateAssetProcedureStepFieldsMany=Up,i.updateAssetProcedureSteps=mt,i.updateAssetProcedures=Tp,i.updateAssetStage=ti,i.updateAssetStageCompletion=yr,i.updateAssetStageCompletions=fr,i.updateAssetStages=yt,i.updateAssetType=xe,i.updateAssetTypeAttachment=gA,i.updateAssetTypeAttachments=Er,i.updateAssetTypeFieldValues=Ze,i.updateAssetTypeFieldValuesAttachment=DA,i.updateAssetTypeFieldValuesAttachments=ed,i.updateAssetTypeFieldValuesMany=dd,i.updateAssetTypeFields=Yr,i.updateAssetTypeFieldsAttachment=TA,i.updateAssetTypeFieldsAttachments=$r,i.updateAssetTypeFieldsMany=EA,i.updateAssetTypes=YA,i.updateAssets=rA,i.updateCategory=bd,i.updateConversation=Ic,i.updateDocumentAttachment=ry,i.updateDocumentAttachments=_d,i.updateDocuments=Te,i.updateForm=Oy,i.updateFormRevisionAttachment=Sy,i.updateFormRevisionAttachments=tu,i.updateFormSubmission=Ou,i.updateFormSubmissionAttachment=qy,i.updateFormSubmissionAttachments=bu,i.updateFormSubmissions=Vy,i.updateGeoImage=zu,i.updateGeoImages=ky,i.updateIssue=wt,i.updateIssueAssociation=Lu,i.updateIssueAssociations=Uy,i.updateIssueAttachment=Ly,i.updateIssueAttachments=Qu,i.updateIssueCommentAttachment=Wy,i.updateIssueCommentAttachments=ro,i.updateIssueType=ol,i.updateIssueTypeAttachment=ef,i.updateIssueTypeAttachments=vo,i.updateIssueTypeFieldValues=it,i.updateIssueTypeFieldValuesAttachment=vf,i.updateIssueTypeFieldValuesAttachments=sl,i.updateIssueTypeFieldValuesMany=mf,i.updateIssueTypeFields=Xo,i.updateIssueTypeFieldsAttachment=nf,i.updateIssueTypeFieldsAttachments=Do,i.updateIssueTypeFieldsMany=gf,i.updateLicense=Pe,i.updateOrganization=yS,i.updateOrganizationAccess=Ml,i.updateOrganizations=AS,i.updateProject=Wl,i.updateProjectAccess=Dl,i.updateProjectAttachment=vS,i.updateProjectAttachments=yh,i.updateProjectFile=La,i.updateProjectFiles=jS,i.updateProjects=nS,i.updateTeam=Wa,i.updateUser=Nf,i.updateUsers=Lf,i.userReducer=El,i.userSlice=qa,i.versioningReducer=$h,i.versioningSlice=Uh,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})});
|
|
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=Sc(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 Bb 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(cu(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(nu(u.attachments))}).catch(()=>{this.dispatch(ru(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(iu(s)),s}}class $b 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(wa(n));const r=this.enqueueRequest({description:"Create form revision",method:h.POST,url:"/form-revisions/",payload:w(n),blockers:[e.form],blocks:[n.uuid]});return r.then(m=>{this.dispatch(mu(m))}).catch(()=>{this.dispatch(Ma(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(lu(s)),s}}class Gb 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(ja(r)),this.dispatch(wa(o));const m=this.enqueueRequest({description:"Create form",method:h.POST,url:"/forms/",payload:{...w(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(qa(r.uuid)),this.dispatch(Ma(o.uuid)),l}),[r,o,m]}async delete(e){const{store:s}=this.client,i=s.getState(),c=Tu(e)(i);if(!c)throw new Error("Expected form to exist");const n=qu(e)(i);n.length>0&&this.dispatch(jt(n.map(({uuid:o})=>o)));const r=yu(e)(i);r.length>0&&this.dispatch(pu(r.map(({uuid:o})=>o))),this.dispatch(qa(e));try{return await this.enqueueRequest({description:"Delete form",method:h.DELETE,url:`/forms/${e}/`,blockers:[e],blocks:[]})}catch(o){throw this.dispatch(ja(c)),r.length>0&&this.dispatch(hu(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(gu(s)),s}}class Lb 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(_u(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=Ru(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(Ou(s)),s}}class Nb 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:w(c),blockers:[e.form_revision,...e.issue?[e.issue]:[],...e.asset?[e.asset]:[]],blocks:[c.uuid]});return this.dispatch(Da(c)),n.then(o=>(this.dispatch(Mt(o)),o)).catch(()=>{this.dispatch(Ca(c.uuid))}),[c,n]}update(e){const{store:s}=this.client,i=s.getState(),c=$a(e.uuid)(i);if(!c)throw new Error(`Expected submission with uuid ${e.uuid} to exist`);const n={...c,...e};this.dispatch(ju(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=$a(e)(i);if(!c)throw new Error(`Expected submission with uuid ${e} to exist`);const n=vu(e)(i);this.dispatch(Ca(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(Da(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(Eu(s)),s}}class Hb 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(Bu(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(it(A.geo_image))}).catch(()=>{this.dispatch(La(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 _=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.push(_.uuid),m.push({uuid:_.uuid,sha1:_.file_sha1,file_name:_.file_name,title:_.title,description:_.description,geo_marker:_.geo_marker,canvas_marker:_.canvas_marker,direction:_.direction,original_date:_.original_date})}this.dispatch($u(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(ku(A.geo_images))}).catch(()=>{this.dispatch(Lu(o))}),[r,l.then(A=>A.geo_images)]}update(e){const{store:s}=this.client,i=s.getState(),c=Na(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(Gu(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(it(o))}).catch(()=>{this.dispatch(it(c))}),[n,r]}async delete(e){const{store:s}=this.client,i=s.getState(),c=Na(e)(i);if(!c)throw new Error(`Map image with uuid ${e} does not exist in the store`);this.dispatch(La(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(it(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(Cu(s)),s}}class Wb extends v{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(Wa(n));const r=this.enqueueRequest({description:"Add issue association",method:h.POST,url:"/issue-associations/",payload:w(n),blockers:[e.associated_issue,...e.issue?[e.issue]:[],...e.asset?[e.asset]:[]],blocks:[n.uuid]});return r.then(m=>{this.dispatch(Ju(m))}).catch(()=>{this.dispatch(Ya(n.uuid))}),[n,r]}async delete(e){const{store:s}=this.client,i=Zu(e)(s.getState());if(!i)throw new Error(`Issue association with uuid ${e} not found in store.`);this.dispatch(Ya(e));const c=this.enqueueRequest({description:"Delete issue association",method:h.DELETE,url:`/issue-associations/${e}/`,blockers:[e],blocks:[]});return c.catch(()=>{this.dispatch(Wa(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(Yu(s)),s}}class Kb extends ke{constructor(){super(...arguments);S(this,"name","Issue Attachment");S(this,"url","/issue-attachments");S(this,"initializeAttachments",Xa);S(this,"addAttachments",Qa);S(this,"updateAttachments",ao);S(this,"removeAttachments",xa);S(this,"removeAttachment",io);S(this,"setAttachment",so);S(this,"selectAttachment",uo)}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(Xa(i)),i}}class Yb extends ke{constructor(){super(...arguments);S(this,"name","Issue Comment Attachment");S(this,"url","/issue-comment-attachments");S(this,"initializeAttachments",ti);S(this,"addAttachments",ho);S(this,"updateAttachments",po);S(this,"removeAttachments",yo);S(this,"removeAttachment",Ao);S(this,"setAttachment",mo);S(this,"selectAttachment",go)}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(ti(i)),i}}class Jb extends v{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(ai(i));const c=this.enqueueRequest({description:"Add issue comment",method:h.POST,url:"/issue-comments/",payload:w(i),blockers:[e.issue],blocks:[i.uuid]});return c.catch(()=>{this.dispatch(ci(i.uuid))}),[i,c]}update(e){const{store:s}=this.client,i=ni(e.uuid)(s.getState());if(!i)throw new Error(`Comment with uuid ${e.uuid} not found in store`);const c={...i,...e};this.dispatch(ii(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(ii(i))}),[c,n]}remove(e){const{store:s}=this.client,i=ni(e)(s.getState());if(!i)throw new Error(`Comment with uuid ${e} not found in store`);this.dispatch(ci(e));const c=this.enqueueRequest({description:"Delete comment",method:h.DELETE,url:`/issue-comments/${e}/`,blockers:[e],blocks:[]});return c.catch(()=>{this.dispatch(ai(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(Fo(s)),s}}class Zb extends v{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(di(r));const o=this.enqueueRequest({description:"Create issue",method:h.POST,url:"/issues/",payload:w(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(ui(r.uuid)),u}),[r,o]}update(e){var m;const s=this.client.store.getState(),i=li(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(Pl(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(Tl(r.uuid))}),[c,o]}async remove(e){const{store:s}=this.client,i=s.getState(),c=li(e)(i);if(!c)throw new Error(`No issue with uuid ${e} found in the store`);const n=ro(e)(i),r=_l(e)(i),o=Vu(e)(i),m={};for(const l of Xu(e)(i))m[l.uuid]=l;for(const l of Qu(e)(i))m[l.uuid]=l;const u=Object.values(m);this.dispatch(ui(e)),n.length>0&&this.dispatch(xa(n.map(({uuid:l})=>l))),r.length>0&&this.dispatch(Il(r.map(({uuid:l})=>l))),o.length>0&&this.dispatch(jt(o.map(({uuid:l})=>l))),u.length>0&&this.dispatch(Ja(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(di(c)),this.dispatch(Qa(n)),this.dispatch(Fl(r)),this.dispatch(Et(o)),this.dispatch(Ka(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(_o(s)),s}}class Xb extends ke{constructor(){super(...arguments);S(this,"name","Issue Type Attachment");S(this,"url","/issue-type-attachments");S(this,"initializeAttachments",mi);S(this,"addAttachments",Eo);S(this,"updateAttachments",qo);S(this,"removeAttachments",zo);S(this,"removeAttachment",Vo);S(this,"setAttachment",jo);S(this,"selectAttachment",Co)}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(mi(i)),i}}class Qb 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(Go(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(Lo(u.attachments))}).catch(()=>{this.dispatch(No(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($o(s)),s}}class xb extends v{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(el(n));const r=this.enqueueRequest({description:"Add Issue Type Fields",method:h.POST,url:"/issue-type-fields/",payload:w(n),blockers:[n.issue_type],blocks:[n.uuid]});return r.then(m=>{this.dispatch(tl(m))}).catch(m=>{throw this.dispatch(sl(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(xo(s)),s}}class eP 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(rl(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=ul(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(nl(s)),s}}class tP extends v{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:w(c),blockers:[e.issue,e.fields_revision],blocks:[c.uuid]});return this.dispatch(yi(c)),n.then(o=>(this.dispatch(nt(o)),o)).catch(()=>{this.dispatch(fi(c.uuid))}),[c,n]}update(e){const{store:s}=this.client,i=s.getState(),c=gi(e.uuid)(i);if(!c)throw new Error(`Expected IssueTypeFieldValues with uuid ${e.uuid} to exist`);const n={...c,...e};this.dispatch(nt(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(nt(o))}).catch(()=>{this.dispatch(nt(c))}),[n,r]}async delete(e){const{store:s}=this.client,i=s.getState(),c=gi(e)(i);if(!c)throw new Error(`Expected submission with uuid ${e} to exist`);const n=ol(e)(i);this.dispatch(fi(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(yi(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(Jo(s)),s}}class sP extends v{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(pl(c));const n=this.enqueueRequest({method:h.POST,url:"/issue-types/",payload:w(c),blockers:[],blocks:[c.uuid]});return n.then(o=>{this.dispatch(rt(o))}).catch(()=>{this.dispatch(Ii(c.uuid))}),[c,n]}update(e){const{store:s}=this.client,i=s.getState(),c=Oi(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(Al(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(rt(o))}).catch(()=>{this.dispatch(rt(c))}),[n,r]}delete(e){const{store:s}=this.client,i=s.getState(),c=Oi(e)(i);if(!c)throw new Error(`IssueType with uuid ${e} does not exist in the store.`);const n=_i(e)(i);this.dispatch(Ii(e)),this.dispatch(vo(n.map(o=>o.uuid)));const r=this.enqueueRequest({method:h.DELETE,url:`/issue-types/${e}/`,blockers:[e],blocks:[]});return r.catch(()=>{this.dispatch(rt(c)),this.dispatch(Ro(n))}),r}async refreshStore(e){const s=await this.enqueueRequest({method:h.GET,url:"/issue-types/",queryParams:{organization:e},blockers:[],blocks:[]});return this.dispatch(ml(s)),s}}class aP extends v{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(bl(s)),s}}const iP=1800;function cP(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 nP extends um{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(){super.clearAuth(),this.clearTokens()}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=fm(s).exp??i}catch{c=i}return c-i<iP}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??Ke).toString()))}}}getAuthHeader(){return`Bearer ${this.getAccessToken()}`}prepareRequest(s){const i=this.getAuthHeader();return i&&(s=s.set("Authorization",i)),s}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){return this.enqueueRequest({uuid:Ne.v4(),description:"Get token pair",method:h.POST,url:this.initTokensUrl,payload:s,isAuthNeeded:!1,checkAuth:!1,immediate:!0,blockers:[],blocks:[]}).then(i=>{this.setTokens(cP(i))})}}class rP extends v{update(e){const{store:s}=this.client,i=ji(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=ji(e)(i),n=Vl(c.user)(i);this.dispatch(Cl(c.uuid)),this.dispatch(El(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(Dl(c)),this.dispatch(Ml(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(Ul(s)),s}}class dP extends v{async add(e){const s=await this.enqueueRequest({description:"Create organization",method:h.POST,url:"/organizations/",payload:e,blockers:[],blocks:[]});return this.dispatch(Ll(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(Nl(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(Gl(e)),e}}class uP extends v{add(e){const s=T(e);this.dispatch(Ui(s));const i=this.enqueueRequest({description:"Add project access",method:h.POST,url:"/project-accesses/",payload:w(s),blockers:[s.organization_access,s.project],blocks:[s.uuid]});return i.then(c=>{this.dispatch(dt(c))}).catch(c=>{throw this.dispatch(Di(s.uuid)),c}),[s,i]}update(e){const{store:s}=this.client,i=ki(e.uuid)(s.getState()),c={...i,...e};this.dispatch(dt(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(dt(r))}).catch(r=>{throw this.dispatch(dt(i)),r}),[c,n]}async remove(e){const{store:s}=this.client,i=ki(e)(s.getState());this.dispatch(Di(e));try{await this.enqueueRequest({description:"Delete project access",method:h.DELETE,url:`/project-accesses/${e}/`,blockers:[e],blocks:[]})}catch(c){throw this.dispatch(Ui(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(eh(s)),s}}class oP extends ke{constructor(){super(...arguments);S(this,"name","Project Attachment");S(this,"url","/project-attachments");S(this,"addAttachments",rh);S(this,"updateAttachments",oh);S(this,"removeAttachments",$i);S(this,"removeAttachment",lh);S(this,"setAttachment",dh);S(this,"selectAttachment",ph)}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(nh(i)),i}}class lP extends v{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(Li(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(Li(m))}),this.dispatch(Ih),this.dispatch(Th(null)),this.dispatch(Fh(!1)),[c,o]}delete(e){return this.dispatch(bh(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(Sh(s)),s}}class hP extends v{async add(e){const s=await this.enqueueRequest({description:"Create project",method:h.POST,url:"/projects/",payload:w(e),blockers:[],blocks:[]});return this.dispatch(Hi(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(Mh(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=qh(e)(i);if(!c)throw new Error("Expected project to exist");const n=_h(i).filter(m=>m.project===e);this.dispatch(Ph(n.map(({uuid:m})=>m)));const r=Ah(c.uuid)(i);this.dispatch($i(r.map(({uuid:m})=>m)));const o=ih(e)(i);this.dispatch(sh(o.map(({uuid:m})=>m))),this.dispatch(Wi(c.uuid));try{await this.enqueueRequest({description:"Delete project",method:h.DELETE,url:`/projects/${e}/`,blockers:[e],blocks:[]}),this.dispatch(Wi(c.uuid))}catch(m){throw this.dispatch(Hi(c)),this.dispatch(th(Object.values(o))),this.dispatch(gh(n)),this.dispatch(uh(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(wh(s)),s}}class mP extends um{clearAuth(){super.clearAuth(),sessionStorage.clear()}async handleUnauthorized(e,s){const i=`${this.loginUrl}?next=${encodeURI(window.location.href)}`;window.location.replace(i)}prepareRequest(e){return e.withCredentials(!0)}}class pP extends v{add(e){const s=T(e);this.dispatch(Dh(s));const i=this.enqueueRequest({description:"Create team membership",method:h.POST,url:"/team-memberships/",payload:w(s),blockers:[e.team],blocks:[s.uuid]});return i.then(c=>{this.dispatch(Zi(c))}).catch(()=>{this.dispatch(Xi(s.uuid))}),[s,i]}async delete(e){const{store:s}=this.client,i=s.getState(),c=Bh(e)(i);if(!c)throw new Error(`Expected team membership with uuid ${e} to exist`);this.dispatch(Xi(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(Zi(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(Uh(s)),s}}class AP extends v{add(e){const s=T({...e,submitted_at:new Date().toISOString()});this.dispatch(Lh(s));const i=this.enqueueRequest({description:"Create team",method:h.POST,url:"/teams/",payload:w(s),blockers:[],blocks:[s.uuid]});return i.then(c=>{this.dispatch(ut(c))}).catch(()=>{this.dispatch(ec(s.uuid))}),[s,i]}update(e){const{store:s}=this.client,i=sc(e.uuid)(s.getState());if(!i)throw new Error(`Expected team with uuid ${e.uuid} to exist`);const c={...i,...e};this.dispatch(Nh(c));const n=this.enqueueRequest({description:"Update team",method:h.PATCH,url:`/teams/${e.uuid}/`,payload:w(e),blockers:[e.uuid],blocks:[e.uuid]});return n.then(r=>{this.dispatch(ut(r))}).catch(()=>{this.dispatch(ut(i))}),[c,n]}async delete(e){const{store:s}=this.client,i=s.getState(),c=sc(e)(i);if(!c)throw new Error(`Expected team with uuid ${e} to exist`);this.dispatch(ec(e));try{return await this.enqueueRequest({description:"Delete team",method:h.DELETE,url:`/teams/${e}/`,blockers:[e],blocks:[e]})}catch(n){throw this.dispatch(ut(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(Gh(s)),s}}class yP extends v{async refreshStore(e){const s=await this.enqueueRequest({description:"Fetch organization users",method:h.GET,url:`/organizations/${e}/users/`,blockers:[],blocks:[]});return this.dispatch(wl(s)),s}}class fP{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 yc,n={...e,BASE_URL:s,serviceName:i};if(e.immediate){const r={...n,uuid:e.uuid??Ne.v4()},o={payload:r,type:"",meta:{offline:{effect:{timestamp:new Date().toISOString(),request:r,BASE_URL:s,serviceName:i}}}};cc(o,this).then(m=>{c.resolve(m.body)}).catch(m=>{nc(m,o),m instanceof Error?c.reject(m):c.reject(new Error((m??Ke).toString()))})}else{const r=this.store.dispatch(Jl(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
|
+
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 Ye{constructor(){S(this,"graph");S(this,"requestAttemptCounter");this.graph=new Sm.DepGraph,this.requestAttemptCounter={}}static _fromOutbox(e){const s=new Ye;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))&&Ye._addDependency(c.payload.uuid,r.payload.uuid,s.graph)}}return s}_addDependency(e,s){Ye._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 SP=(t,e)=>{const s=new e(t);return Ng(s),Lg(t),s};var om=(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))(om||{});a.APIError=U,a.AgentService=ob,a.AssetAttachmentService=lb,a.AssetProcedureAttachmentService=hb,a.AssetProcedureFieldValuesAttachmentService=Ab,a.AssetProcedureFieldValuesService=yb,a.AssetProcedureFieldsAttachmentService=mb,a.AssetProcedureFieldsService=pb,a.AssetProcedureInstanceService=fb,a.AssetProcedureService=Sb,a.AssetProcedureStepFieldValuesAttachmentService=Pb,a.AssetProcedureStepFieldValuesService=Fb,a.AssetProcedureStepFieldsAttachmentService=gb,a.AssetProcedureStepFieldsService=bb,a.AssetProcedureStepService=Tb,a.AssetService=Ib,a.AssetStageCompletionService=Ob,a.AssetStageService=_b,a.AssetTypeAttachmentService=Rb,a.AssetTypeFieldValuesAttachmentService=Mb,a.AssetTypeFieldValuesService=Eb,a.AssetTypeFieldsAttachmentService=vb,a.AssetTypeFieldsService=wb,a.AssetTypeService=jb,a.AttachmentModel=pc,a.BaseApiService=v,a.BaseSDK=fP,a.COMMON_AUTO_FIELDS=Pc,a.CategoryService=qb,a.DEFAULT_ISSUE_PRIORITY=bm,a.DEFAULT_ISSUE_STATUS=gm,a.DeferredPromise=yc,a.DocumentAttachmentService=Vb,a.DocumentService=zb,a.EMPTY_ARRAY=lc,a.EMPTY_OBJECT=hc,a.EmailDomainsService=Ub,a.EmailVerificationService=Db,a.FileService=kb,a.FormRevisionAttachmentService=Bb,a.FormRevisionService=$b,a.FormService=Gb,a.FormSubmissionAttachmentService=Lb,a.FormSubmissionService=Nb,a.GeoImageService=Hb,a.HttpMethod=h,a.IssueAssociationService=Wb,a.IssueAttachmentService=Kb,a.IssueCommentAttachmentService=Yb,a.IssueCommentService=Jb,a.IssuePriority=Gt,a.IssueService=Zb,a.IssueStatus=Lt,a.IssueTypeAttachmentService=Xb,a.IssueTypeFieldValuesAttachmentService=eP,a.IssueTypeFieldValuesService=tP,a.IssueTypeFieldsAttachmentService=Qb,a.IssueTypeFieldsService=xb,a.IssueTypeService=sP,a.IssueUpdateChange=E,a.IssueUpdateService=aP,a.JWTAuthService=nP,a.OUTBOX_RETRY_DELAY=Ac,a.OrganizationAccessLevel=mc,a.OrganizationAccessService=rP,a.OrganizationService=dP,a.OutboxCoordinator=Ye,a.ProjectAccessService=uP,a.ProjectAttachmentService=oP,a.ProjectFileService=lP,a.ProjectService=hP,a.RESET_ORGANIZATION_STATE=O,a.RESET_PROJECT_STATE=M,a.RESET_STATE=F,a.SessionAuthService=mP,a.TeamMembershipService=pP,a.TeamService=AP,a.UNKNOWN_ERROR_MESSAGE=Ke,a.UserService=yP,a.VERSION_REDUCER_KEY=Je,a.VerificationCodeType=om,a._setLatestRetryTime=Xl,a.addAsset=ks,a.addAssetAttachment=Xm,a.addAssetAttachments=Qt,a.addAssetProcedure=Ss,a.addAssetProcedureAttachment=ep,a.addAssetProcedureAttachments=$c,a.addAssetProcedureFieldValues=rs,a.addAssetProcedureFieldValuesAttachment=gp,a.addAssetProcedureFieldValuesAttachments=mt,a.addAssetProcedureFieldValuesMany=Pn,a.addAssetProcedureFields=rn,a.addAssetProcedureFieldsAttachment=ip,a.addAssetProcedureFieldsAttachments=Qc,a.addAssetProcedureFieldsMany=lp,a.addAssetProcedureInstance=hs,a.addAssetProcedureInstances=vn,a.addAssetProcedureStep=zs,a.addAssetProcedureStepFieldValues=Es,a.addAssetProcedureStepFieldValuesAttachment=aA,a.addAssetProcedureStepFieldValuesAttachments=At,a.addAssetProcedureStepFieldValuesMany=sr,a.addAssetProcedureStepFields=Is,a.addAssetProcedureStepFieldsAttachment=$p,a.addAssetProcedureStepFieldsAttachments=Cn,a.addAssetProcedureStepFieldsMany=Yp,a.addAssetProcedureSteps=AA,a.addAssetProcedures=Vp,a.addAssetStage=Qs,a.addAssetStageCompletion=Ws,a.addAssetStageCompletions=Ks,a.addAssetStages=wA,a.addAssetType=pa,a.addAssetTypeAttachment=zA,a.addAssetTypeAttachments=sa,a.addAssetTypeFieldValues=ua,a.addAssetTypeFieldValuesAttachment=xA,a.addAssetTypeFieldValuesAttachments=It,a.addAssetTypeFieldValuesMany=ud,a.addAssetTypeFields=Jr,a.addAssetTypeFieldsAttachment=CA,a.addAssetTypeFieldsAttachments=$r,a.addAssetTypeFieldsMany=HA,a.addAssetTypes=ly,a.addAssets=bt,a.addCategories=by,a.addCategory=ga,a.addConversation=_c,a.addConversations=Nm,a.addDocumentAttachment=Ry,a.addDocumentAttachments=wd,a.addDocuments=Bd,a.addEmailDomain=Kd,a.addEmailDomains=Vy,a.addForm=ja,a.addFormRevision=wa,a.addFormRevisionAttachment=Gy,a.addFormRevisionAttachments=cu,a.addFormRevisions=hu,a.addFormSubmission=Da,a.addFormSubmissionAttachment=df,a.addFormSubmissionAttachments=vt,a.addFormSubmissions=Et,a.addForms=ef,a.addGeoImage=Bu,a.addGeoImages=$u,a.addIssue=di,a.addIssueAssociation=Wa,a.addIssueAssociations=Ka,a.addIssueAttachment=Pf,a.addIssueAttachments=Qa,a.addIssueComment=ai,a.addIssueCommentAttachment=If,a.addIssueCommentAttachments=ho,a.addIssueComments=wf,a.addIssueType=pl,a.addIssueTypeAttachment=kf,a.addIssueTypeAttachments=Eo,a.addIssueTypeFieldValues=yi,a.addIssueTypeFieldValuesAttachment=lS,a.addIssueTypeFieldValuesAttachments=zt,a.addIssueTypeFieldValuesMany=Zf,a.addIssueTypeFields=el,a.addIssueTypeFieldsAttachment=Lf,a.addIssueTypeFieldsAttachments=Go,a.addIssueTypeFieldsMany=sS,a.addIssueTypes=fS,a.addIssueUpdate=Pl,a.addIssueUpdates=Fl,a.addIssues=Ro,a.addOrganization=Ll,a.addOrganizationAccess=Dl,a.addOrganizationAccesses=CS,a.addOrganizations=KS,a.addProject=Hi,a.addProjectAccess=Ui,a.addProjectAccesses=th,a.addProjectAttachment=rg,a.addProjectAttachments=rh,a.addProjectFile=lg,a.addProjectFiles=gh,a.addProjects=gg,a.addTeam=Lh,a.addTeamMembership=Dh,a.addTeamMemberships=Rg,a.addTeams=Vg,a.addUser=Ml,a.addUsers=ES,a.agentsReducer=wc,a.agentsSlice=Yt,a.areArraysEqual=_m,a.assetAttachmentReducer=Cc,a.assetAttachmentSlice=Zt,a.assetProcedureAttachmentReducer=Jc,a.assetProcedureAttachmentSlice=es,a.assetProcedureFieldValuesAttachmentReducer=Sn,a.assetProcedureFieldValuesAttachmentSlice=is,a.assetProcedureFieldValuesReducer=On,a.assetProcedureFieldValuesSlice=ns,a.assetProcedureFieldsAttachmentReducer=an,a.assetProcedureFieldsAttachmentSlice=ts,a.assetProcedureFieldsReducer=ln,a.assetProcedureFieldsSlice=ss,a.assetProcedureInstanceReducer=En,a.assetProcedureInstanceSlice=ls,a.assetProcedureReducer=zn,a.assetProcedureSlice=fs,a.assetProcedureStepFieldValuesAttachmentReducer=xn,a.assetProcedureStepFieldValuesAttachmentSlice=vs,a.assetProcedureStepFieldValuesReducer=nr,a.assetProcedureStepFieldValuesSlice=Ms,a.assetProcedureStepFieldsAttachmentReducer=Ln,a.assetProcedureStepFieldsAttachmentSlice=Fs,a.assetProcedureStepFieldsReducer=Wn,a.assetProcedureStepFieldsSlice=Ts,a.assetProcedureStepReducer=or,a.assetProcedureStepSlice=Vs,a.assetReducer=yr,a.assetSlice=Cs,a.assetStageCompletionReducer=Pr,a.assetStageCompletionSlice=Hs,a.assetStageReducer=Rr,a.assetStageSlice=Xs,a.assetTypeAttachmentReducer=Cr,a.assetTypeAttachmentSlice=ta,a.assetTypeFieldValuesAttachmentReducer=nd,a.assetTypeFieldValuesAttachmentSlice=na,a.assetTypeFieldValuesReducer=md,a.assetTypeFieldValuesSlice=da,a.assetTypeFieldsAttachmentReducer=Wr,a.assetTypeFieldsAttachmentSlice=ia,a.assetTypeFieldsReducer=xr,a.assetTypeFieldsSlice=ca,a.assetTypeReducer=fd,a.assetTypeSlice=ma,a.authReducer=bd,a.authSlice=_t,a.baseReducer=$g,a.baseReducers=ac,a.blobToBase64=zm,a.categoryReducer=_d,a.categorySlice=Sa,a.clearTokens=fy,a.constructUploadedFilePayloads=Vm,a.coordinatesAreEqual=Im,a.createModelAdapter=I,a.createMultiPointGeometry=Tm,a.createOfflineAction=Kl,a.createPayload=w,a.createPointGeometry=Fm,a.createSelectionAdapter=Pm,a.deleteAsset=Bs,a.deleteAssetAttachment=qc,a.deleteAssetAttachments=xt,a.deleteAssetProcedure=gs,a.deleteAssetProcedureAttachment=Nc,a.deleteAssetProcedureAttachments=Hc,a.deleteAssetProcedureFieldValues=ds,a.deleteAssetProcedureFieldValuesAttachment=Tp,a.deleteAssetProcedureFieldValuesAttachments=pt,a.deleteAssetProcedureFieldValuesMany=Tn,a.deleteAssetProcedureFields=un,a.deleteAssetProcedureFieldsAttachment=dp,a.deleteAssetProcedureFieldsAttachments=en,a.deleteAssetProcedureFieldsMany=Ap,a.deleteAssetProcedureInstance=ms,a.deleteAssetProcedureInstances=wn,a.deleteAssetProcedureStep=Us,a.deleteAssetProcedureStepFieldValues=js,a.deleteAssetProcedureStepFieldValuesAttachment=rA,a.deleteAssetProcedureStepFieldValuesAttachments=yt,a.deleteAssetProcedureStepFieldValuesMany=ir,a.deleteAssetProcedureStepFields=Os,a.deleteAssetProcedureStepFieldsAttachment=Hp,a.deleteAssetProcedureStepFieldsAttachments=Bn,a.deleteAssetProcedureStepFieldsMany=Qp,a.deleteAssetProcedureSteps=fA,a.deleteAssetProcedures=Up,a.deleteAssetStage=xs,a.deleteAssetStageCompletion=Ys,a.deleteAssetStageCompletions=Js,a.deleteAssetStages=EA,a.deleteAssetType=Aa,a.deleteAssetTypeAttachment=qr,a.deleteAssetTypeAttachments=aa,a.deleteAssetTypeFieldValues=oa,a.deleteAssetTypeFieldValuesAttachment=ay,a.deleteAssetTypeFieldValuesAttachments=Ot,a.deleteAssetTypeFieldValuesMany=ld,a.deleteAssetTypeFields=Xr,a.deleteAssetTypeFieldsAttachment=GA,a.deleteAssetTypeFieldsAttachments=Lr,a.deleteAssetTypeFieldsMany=JA,a.deleteAssetTypes=my,a.deleteAssets=$s,a.deleteCategories=Iy,a.deleteCategory=Id,a.deleteConversation=Km,a.deleteConversations=Ym,a.deleteDocumentAttachment=jd,a.deleteDocumentAttachments=qd,a.deleteEmailDomain=Yd,a.deleteEmailDomains=ky,a.deleteForm=qa,a.deleteFormRevision=Ma,a.deleteFormRevisionAttachment=Wy,a.deleteFormRevisionAttachments=ru,a.deleteFormRevisions=pu,a.deleteFormSubmission=Ca,a.deleteFormSubmissionAttachment=hf,a.deleteFormSubmissionAttachments=wt,a.deleteFormSubmissions=jt,a.deleteForms=nf,a.deleteGeoImage=La,a.deleteGeoImages=Lu,a.deleteIssue=ui,a.deleteIssueAssociation=Ya,a.deleteIssueAssociations=Ja,a.deleteIssueAttachment=io,a.deleteIssueAttachments=xa,a.deleteIssueComment=ci,a.deleteIssueCommentAttachment=Ao,a.deleteIssueCommentAttachments=yo,a.deleteIssueComments=jf,a.deleteIssueType=bS,a.deleteIssueTypeAttachment=Vo,a.deleteIssueTypeAttachments=zo,a.deleteIssueTypeFieldValues=fi,a.deleteIssueTypeFieldValuesAttachment=AS,a.deleteIssueTypeFieldValuesAttachments=Ut,a.deleteIssueTypeFieldValuesMany=eS,a.deleteIssueTypeFields=sl,a.deleteIssueTypeFieldsAttachment=Kf,a.deleteIssueTypeFieldsAttachments=No,a.deleteIssueTypeFieldsMany=nS,a.deleteIssueTypes=PS,a.deleteIssueUpdate=Tl,a.deleteIssueUpdates=Il,a.deleteIssues=vo,a.deleteOrganization=JS,a.deleteOrganizationAccess=Cl,a.deleteOrganizationAccesses=GS,a.deleteOrganizations=ZS,a.deleteProject=Wi,a.deleteProjectAccess=Di,a.deleteProjectAccesses=sh,a.deleteProjectAttachment=lh,a.deleteProjectAttachments=$i,a.deleteProjectFile=bh,a.deleteProjectFiles=Ph,a.deleteProjects=Pg,a.deleteTeam=ec,a.deleteTeamMembership=Xi,a.deleteTeamMemberships=Eg,a.deleteTeams=Dg,a.deleteUser=El,a.deleteUsers=VS,a.dequeue=cm,a.discard=nc,a.documentAttachmentReducer=Dd,a.documentAttachmentSlice=Fa,a.documentSlice=Ta,a.documentsReducer=Nd,a.downloadFile=Um,a.downloadInMemoryFile=qm,a.emailDomainsReducer=Xd,a.emailDomainsSlice=Oa,a.emailRegex=Lm,a.enqueue=im,a.enqueueRequest=Jl,a.fallbackToEmptyArray=g,a.fallbackToEmptyObject=ht,a.fileReducer=su,a.fileSlice=_a,a.fileToBlob=gc,a.formReducer=bu,a.formRevisionAttachmentReducer=uu,a.formRevisionAttachmentSlice=Ra,a.formRevisionReducer=fu,a.formRevisionsSlice=va,a.formSlice=Ea,a.formSubmissionAttachmentReducer=wu,a.formSubmissionAttachmentSlice=Va,a.formSubmissionReducer=Uu,a.formSubmissionSlice=Ua,a.geoImageReducer=Wu,a.geoImageSlice=Ga,a.getFileIdentifier=jm,a.getFileS3Key=Kt,a.getLocalDateString=fc,a.getLocalRelativeDateString=Mm,a.getOutboxCoordinator=Be,a.getRenamedFile=Sc,a.hashFile=He,a.initSDK=SP,a.initializeAssetAttachments=Xt,a.initializeAssetProcedureAttachments=Bc,a.initializeAssetProcedureFieldValues=bn,a.initializeAssetProcedureFieldValuesAttachments=mn,a.initializeAssetProcedureFields=nn,a.initializeAssetProcedureFieldsAttachments=Xc,a.initializeAssetProcedureInstances=Rn,a.initializeAssetProcedureStepFieldValues=tr,a.initializeAssetProcedureStepFieldValuesAttachments=Yn,a.initializeAssetProcedureStepFields=Hn,a.initializeAssetProcedureStepFieldsAttachments=Dn,a.initializeAssetProcedureSteps=dr,a.initializeAssetProcedures=qn,a.initializeAssetStageCompletions=Sr,a.initializeAssetStages=Or,a.initializeAssetTypeAttachments=Mr,a.initializeAssetTypeFieldValues=dd,a.initializeAssetTypeFieldValuesAttachments=td,a.initializeAssetTypeFields=Yr,a.initializeAssetTypeFieldsAttachments=Br,a.initializeAssetTypes=Ad,a.initializeAssets=mr,a.initializeCategories=Fd,a.initializeConversations=Oc,a.initializeDocumentAttachments=vd,a.initializeEmailDomains=Wd,a.initializeFormRevisionAttachments=iu,a.initializeFormRevisions=lu,a.initializeFormSubmissionAttachments=Ou,a.initializeFormSubmissions=Eu,a.initializeForms=gu,a.initializeGeoImages=Cu,a.initializeIssueAssociations=Yu,a.initializeIssueAttachments=Xa,a.initializeIssueCommentAttachments=ti,a.initializeIssueComments=vf,a.initializeIssueTypeAttachments=mi,a.initializeIssueTypeFieldValues=Jo,a.initializeIssueTypeFieldValuesAttachments=nl,a.initializeIssueTypeFields=xo,a.initializeIssueTypeFieldsAttachments=$o,a.initializeIssueTypes=ml,a.initializeIssueUpdates=bl,a.initializeIssues=_o,a.initializeOrganizationAccesses=Ul,a.initializeOrganizations=Gl,a.initializeProjectAccesses=eh,a.initializeProjectAttachments=nh,a.initializeProjectFiles=Sh,a.initializeProjects=wh,a.initializeTeamMemberships=Uh,a.initializeTeams=Gh,a.initializeUsers=wl,a.isToday=wm,a.issueAssociationReducer=eo,a.issueAssociationSlice=Ha,a.issueAttachmentReducer=oo,a.issueAttachmentSlice=Za,a.issueCommentAttachmentReducer=bo,a.issueCommentAttachmentSlice=ei,a.issueCommentReducer=Io,a.issueCommentSlice=si,a.issueReducer=wo,a.issueSlice=ri,a.issueTypeAttachmentReducer=ko,a.issueTypeAttachmentSlice=hi,a.issueTypeFieldValuesAttachmentReducer=ll,a.issueTypeFieldValuesAttachmentSlice=Pi,a.issueTypeFieldValuesReducer=Xo,a.issueTypeFieldValuesSlice=Ai,a.issueTypeFieldsAttachmentReducer=Ko,a.issueTypeFieldsAttachmentSlice=pi,a.issueTypeFieldsReducer=il,a.issueTypeFieldsSlice=bi,a.issueTypeReducer=Sl,a.issueTypeSlice=Ti,a.issueUpdateReducer=Rl,a.issueUpdateSlice=Ri,a.logOnlyOnce=Dm,a.markAsDeleted=Zl,a.markForDeletion=tg,a.memoize=Ht,a.moveDocument=$d,a.offline=T,a.onlyUniqueHashes=Gm,a.onlyUniqueOfflineIds=Tc,a.organizationAccessReducer=kl,a.organizationAccessSlice=Mi,a.organizationReducer=Wl,a.organizationSlice=qi,a.outboxReducer=Ql,a.outboxSlice=Vi,a.overmapEnhancer=xg,a.overmapReducer=Gg,a.overmapReducers=Jh,a.performRequest=cc,a.projectAccessReducer=ah,a.projectAccessSlice=zi,a.projectAttachmentReducer=yh,a.projectAttachmentSlice=Bi,a.projectFileReducer=Rh,a.projectFileSlice=Gi,a.projectReducer=Eh,a.projectSlice=Ni,a.rehydratedReducer=Vh,a.rehydratedSlice=Yi,a.removeDocuments=Ia,a.removeIssueType=Ii,a.resetProjectFileObjectUrls=mg,a.restructureCreateSelectorWithArgs=f,a.saveActiveProjectFileBounds=Ih,a.selectAccessToken=Sy,a.selectAccessesByUserOfProject=cg,a.selectAccessibleProjects=Fg,a.selectActiveOrganizationAccess=LS,a.selectActiveProjectFileId=Ag,a.selectAllDocumentAttachments=zd,a.selectAllProjectAttachments=mh,a.selectAncestorIdsOfDocument=jy,a.selectAssetAttachmentById=Uc,a.selectAssetAttachmentMapping=Vc,a.selectAssetAttachments=zc,a.selectAssetById=Ns,a.selectAssetProcedureAttachmentById=Yc,a.selectAssetProcedureAttachmentMapping=Wc,a.selectAssetProcedureAttachments=Kc,a.selectAssetProcedureById=Ps,a.selectAssetProcedureFieldValues=us,a.selectAssetProcedureFieldValuesAttachmentById=Ip,a.selectAssetProcedureFieldValuesAttachments=An,a.selectAssetProcedureFieldValuesAttachmentsByIds=yn,a.selectAssetProcedureFieldValuesAttachmentsMapping=cs,a.selectAssetProcedureFieldValuesById=os,a.selectAssetProcedureFieldValuesMapping=In,a.selectAssetProcedureFieldValuesOfAsset=Rp,a.selectAssetProcedureFields=as,a.selectAssetProcedureFieldsAttachmentById=op,a.selectAssetProcedureFieldsAttachments=sn,a.selectAssetProcedureFieldsAttachmentsMapping=tn,a.selectAssetProcedureFieldsById=Sp,a.selectAssetProcedureFieldsMapping=on,a.selectAssetProcedureFieldsOfAssetProcedure=yp,a.selectAssetProcedureInstanceById=ys,a.selectAssetProcedureInstances=As,a.selectAssetProcedureInstancesByIds=qp,a.selectAssetProcedureInstancesMapping=ps,a.selectAssetProcedureInstancesOfAssetProcedure=Mn,a.selectAssetProcedureInstancesOfAssetType=jp,a.selectAssetProcedureStepById=Ds,a.selectAssetProcedureStepFieldValues=ft,a.selectAssetProcedureStepFieldValuesAttachmentById=dA,a.selectAssetProcedureStepFieldValuesAttachments=Zn,a.selectAssetProcedureStepFieldValuesAttachmentsByIds=Xn,a.selectAssetProcedureStepFieldValuesAttachmentsMapping=ws,a.selectAssetProcedureStepFieldValuesById=qs,a.selectAssetProcedureStepFieldValuesMapping=cr,a.selectAssetProcedureStepFieldValuesOfAsset=lA,a.selectAssetProcedureStepFieldValuesOfAssetProcedureInstance=hA,a.selectAssetProcedureStepFieldValuesOfAssetProcedureStep=mA,a.selectAssetProcedureStepFields=Rs,a.selectAssetProcedureStepFieldsAttachmentById=Kp,a.selectAssetProcedureStepFieldsAttachments=Gn,a.selectAssetProcedureStepFieldsAttachmentsMapping=$n,a.selectAssetProcedureStepFieldsById=sA,a.selectAssetProcedureStepFieldsMapping=_s,a.selectAssetProcedureStepFieldsOfAssetProcedureStep=xp,a.selectAssetProcedureStepMapping=gt,a.selectAssetProcedureSteps=lr,a.selectAssetProcedureStepsByIds=bA,a.selectAssetProcedureStepsMappingOfAssetProcedure=SA,a.selectAssetProcedureStepsOfAssetProcedure=gA,a.selectAssetProcedures=Vn,a.selectAssetProceduresByIds=kp,a.selectAssetProceduresMapping=bs,a.selectAssetProceduresOfOrganization=Bp,a.selectAssetStageById=ea,a.selectAssetStageCompletionById=Fr,a.selectAssetStageCompletionMapping=Zs,a.selectAssetStageCompletions=RA,a.selectAssetStageCompletionsByIds=Tr,a.selectAssetStages=vr,a.selectAssetStagesByIds=VA,a.selectAssetStagesMappingOfAssetProcedure=jA,a.selectAssetStagesOfAssetProcedure=qA,a.selectAssetTypeAttachmentById=Ur,a.selectAssetTypeAttachmentMapping=Vr,a.selectAssetTypeAttachments=zr,a.selectAssetTypeById=fa,a.selectAssetTypeFieldValues=la,a.selectAssetTypeFieldValuesAttachmentById=iy,a.selectAssetTypeFieldValuesAttachments=ad,a.selectAssetTypeFieldValuesAttachmentsByIds=id,a.selectAssetTypeFieldValuesAttachmentsMapping=ra,a.selectAssetTypeFieldValuesById=ha,a.selectAssetTypeFieldValuesMapping=hd,a.selectAssetTypeFieldValuesOfAsset=ry,a.selectAssetTypeFields=Tt,a.selectAssetTypeFieldsAttachmentById=NA,a.selectAssetTypeFieldsAttachments=Hr,a.selectAssetTypeFieldsAttachmentsMapping=Nr,a.selectAssetTypeFieldsById=QA,a.selectAssetTypeFieldsMapping=Qr,a.selectAssetTypeFieldsOfAssetType=ZA,a.selectAssetTypeValuesOfAssetType=dy,a.selectAssetTypes=yd,a.selectAssetTypesByIds=py,a.selectAssetTypesMapping=ya,a.selectAssetTypesOfOrganization=Ay,a.selectAssets=pr,a.selectAssetsByIds=Ar,a.selectAssetsMapping=Gs,a.selectAssetsOfAssetType=Ls,a.selectAttachmentsOfAsset=Dc,a.selectAttachmentsOfAssetProcedure=ap,a.selectAttachmentsOfAssetProcedureFieldValues=fn,a.selectAttachmentsOfAssetProcedureFields=up,a.selectAttachmentsOfAssetProcedureStepFieldValues=Qn,a.selectAttachmentsOfAssetProcedureStepFields=Wp,a.selectAttachmentsOfAssetType=Dr,a.selectAttachmentsOfAssetTypeFieldValues=cd,a.selectAttachmentsOfAssetTypeFields=LA,a.selectAttachmentsOfDocument=My,a.selectAttachmentsOfFormRevision=Ky,a.selectAttachmentsOfFormSubmission=vu,a.selectAttachmentsOfIssue=ro,a.selectAttachmentsOfIssueComment=Rf,a.selectAttachmentsOfIssueType=Gf,a.selectAttachmentsOfIssueTypeFieldValues=ol,a.selectAttachmentsOfIssueTypeFields=Yf,a.selectAttachmentsOfProject=Ah,a.selectCategories=Od,a.selectCategoriesByIds=Oy,a.selectCategoriesOfProject=_y,a.selectCategoryById=Pa,a.selectCategoryMapping=ba,a.selectCommentsOfIssue=qf,a.selectConversation=Zm,a.selectConversationMapping=Jt,a.selectConversations=Jm,a.selectCurrentUser=ql,a.selectDeletedRequests=xS,a.selectDocumentAttachmentById=Ud,a.selectDocumentAttachmentMapping=Vd,a.selectDocumentById=Ld,a.selectDocuments=Gd,a.selectDocumentsByIds=Ey,a.selectDocumentsMapping=We,a.selectEmailDomains=Zd,a.selectEmailDomainsAsMapping=Jd,a.selectEmailDomainsOfOrganization=By,a.selectFieldValuesOfAssetProcedureInstance=vp,a.selectFormById=Tu,a.selectFormMapping=Pu,a.selectFormRevisionAttachmentsMapping=du,a.selectFormRevisionById=Qy,a.selectFormRevisionMapping=Rt,a.selectFormRevisions=Au,a.selectFormRevisionsOfForm=yu,a.selectFormSubmissionAttachemntsByIds=Ru,a.selectFormSubmissionAttachmentsMapping=za,a.selectFormSubmissionById=$a,a.selectFormSubmissions=Ba,a.selectFormSubmissionsMapping=ka,a.selectFormSubmissionsOfAsset=zu,a.selectFormSubmissionsOfForm=qu,a.selectFormSubmissionsOfIssue=Vu,a.selectForms=Fu,a.selectFormsOfOrganization=rf,a.selectGeoImageById=Na,a.selectGeoImageMapping=Nu,a.selectGeoImages=Hu,a.selectGeoImagesOfProject=yf,a.selectIsImportingProjectFile=yg,a.selectIsLoggedIn=gy,a.selectIssueAssociationById=Zu,a.selectIssueAssociationMapping=ct,a.selectIssueAssociations=bf,a.selectIssueAssociationsOfAsset=xu,a.selectIssueAssociationsOfIssue=Qu,a.selectIssueAssociationsToIssue=Xu,a.selectIssueAttachmentById=uo,a.selectIssueAttachmentMapping=co,a.selectIssueAttachments=no,a.selectIssueById=li,a.selectIssueCommentAttachmentById=go,a.selectIssueCommentAttachmentMapping=fo,a.selectIssueCommentAttachments=So,a.selectIssueCommentById=ni,a.selectIssueCommentMapping=To,a.selectIssueMapping=oi,a.selectIssueTypeAttachmentById=Co,a.selectIssueTypeAttachmentMapping=Uo,a.selectIssueTypeAttachments=Do,a.selectIssueTypeById=Oi,a.selectIssueTypeFieldValues=Si,a.selectIssueTypeFieldValuesAttachmentById=yS,a.selectIssueTypeFieldValuesAttachments=dl,a.selectIssueTypeFieldValuesAttachmentsByIds=ul,a.selectIssueTypeFieldValuesAttachmentsMapping=Fi,a.selectIssueTypeFieldValuesById=gi,a.selectIssueTypeFieldValuesMapping=Zo,a.selectIssueTypeFieldValuesOfIssue=tS,a.selectIssueTypeFields=Vt,a.selectIssueTypeFieldsAttachmentById=Jf,a.selectIssueTypeFieldsAttachments=Wo,a.selectIssueTypeFieldsAttachmentsMapping=Ho,a.selectIssueTypeFieldsById=oS,a.selectIssueTypeFieldsMapping=al,a.selectIssueTypeFieldsOfIssueType=rS,a.selectIssueTypeMapping=yl,a.selectIssueTypeValuesOfIssueType=uS,a.selectIssueTypes=fl,a.selectIssueTypesByIds=FS,a.selectIssueTypesOfOrganization=TS,a.selectIssueUpdateMapping=Ol,a.selectIssueUpdatesOfIssue=_l,a.selectIssues=Df,a.selectIssuesByIds=Cf,a.selectIssuesOfIssueType=_i,a.selectIssuesOfIssueTypeCount=IS,a.selectLatestAssetProcedureFieldsOfAssetProcedure=fp,a.selectLatestAssetProcedureStepFieldsOfAssetProcedureStep=eA,a.selectLatestAssetTypeFieldsOfAssetType=XA,a.selectLatestFieldsByAssetProcedureStep=tA,a.selectLatestFormRevisionOfForm=xy,a.selectLatestIssueTypeFieldsOfIssueType=dS,a.selectLatestRetryTime=eg,a.selectMembershipsByUserOfTeam=jg,a.selectNumberOfAssetsOfAssetType=IA,a.selectOrganizationAccessById=ji,a.selectOrganizationAccessMapping=Ei,a.selectOrganizationAccessUserMapping=Bl,a.selectOrganizationById=QS,a.selectOrganizations=XS,a.selectOrganizationsMapping=Hl,a.selectProjectAccessById=ki,a.selectProjectAccessMapping=Ci,a.selectProjectAccesses=kt,a.selectProjectAccessesOfProject=ih,a.selectProjectAttachmentById=ph,a.selectProjectAttachmentMapping=hh,a.selectProjectById=qh,a.selectProjectFileById=pg,a.selectProjectFileMapping=Oh,a.selectProjectFiles=_h,a.selectProjectMapping=jh,a.selectProjects=Ki,a.selectProjectsOfOrganization=Tg,a.selectRehydrated=_g,a.selectRootDocuments=qy,a.selectStageMapping=Ft,a.selectTeamById=sc,a.selectTeamMembershipById=Bh,a.selectTeamMemberships=Qi,a.selectTeamMembershipsMapping=kh,a.selectTeams=Hh,a.selectTeamsByIds=Cg,a.selectTeamsMapping=tc,a.selectTeamsOfOrganization=kg,a.selectUploadUrl=tu,a.selectUserById=Vl,a.selectUsers=wi,a.selectUsersByIds=DS,a.selectUsersMapping=Dt,a.selectUsersOfOrganization=NS,a.selectUsersOfProject=ng,a.selectUsersOfTeam=qg,a.setActiveProjectFileId=Th,a.setAsset=FA,a.setAssetAttachment=Ec,a.setAssetAttachments=Qm,a.setAssetProcedure=Dp,a.setAssetProcedureAttachment=Gc,a.setAssetProcedureAttachments=tp,a.setAssetProcedureFieldValues=Op,a.setAssetProcedureFieldValuesAttachment=bp,a.setAssetProcedureFieldValuesAttachments=Pp,a.setAssetProcedureFieldValuesMany=_p,a.setAssetProcedureFields=hp,a.setAssetProcedureFieldsAttachment=cp,a.setAssetProcedureFieldsAttachments=np,a.setAssetProcedureFieldsMany=mp,a.setAssetProcedureInstance=Mp,a.setAssetProcedureInstances=Ep,a.setAssetProcedureStep=ur,a.setAssetProcedureStepFieldValues=uA,a.setAssetProcedureStepFieldValuesAttachment=iA,a.setAssetProcedureStepFieldValuesAttachments=cA,a.setAssetProcedureStepFieldValuesMany=oA,a.setAssetProcedureStepFields=Jp,a.setAssetProcedureStepFieldsAttachment=Gp,a.setAssetProcedureStepFieldsAttachments=Lp,a.setAssetProcedureStepFieldsMany=Zp,a.setAssetProcedureSteps=pA,a.setAssetProcedures=Cp,a.setAssetStage=_r,a.setAssetStageCompletion=OA,a.setAssetStageCompletions=_A,a.setAssetStages=vA,a.setAssetType=uy,a.setAssetTypeAttachment=Er,a.setAssetTypeAttachments=UA,a.setAssetTypeFieldValues=cy,a.setAssetTypeFieldValuesAttachment=ey,a.setAssetTypeFieldValuesAttachments=ty,a.setAssetTypeFieldValuesMany=ny,a.setAssetTypeFields=WA,a.setAssetTypeFieldsAttachment=kA,a.setAssetTypeFieldsAttachments=BA,a.setAssetTypeFieldsMany=KA,a.setAssetTypes=oy,a.setAssets=TA,a.setCategories=Fy,a.setCategory=Py,a.setConversation=Rc,a.setConversations=Hm,a.setCurrentUser=zS,a.setDocumentAttachment=Md,a.setDocumentAttachments=vy,a.setDocuments=kd,a.setEmailDomain=zy,a.setEmailDomains=Uy,a.setForm=tf,a.setFormRevision=mu,a.setFormRevisionAttachment=Ly,a.setFormRevisionAttachments=Ny,a.setFormRevisions=Jy,a.setFormSubmission=Mt,a.setFormSubmissionAttachment=uf,a.setFormSubmissionAttachments=of,a.setFormSubmissions=mf,a.setForms=sf,a.setGeoImage=it,a.setGeoImages=ku,a.setIsImportingProjectFile=Fh,a.setIssue=Vf,a.setIssueAssociation=Sf,a.setIssueAssociations=ff,a.setIssueAttachment=so,a.setIssueAttachments=Ff,a.setIssueComment=ii,a.setIssueCommentAttachment=mo,a.setIssueCommentAttachments=Of,a.setIssueComments=Fo,a.setIssueType=rt,a.setIssueTypeAttachment=jo,a.setIssueTypeAttachments=Bf,a.setIssueTypeFieldValues=Xf,a.setIssueTypeFieldValuesAttachment=hS,a.setIssueTypeFieldValuesAttachments=mS,a.setIssueTypeFieldValuesMany=Qf,a.setIssueTypeFields=aS,a.setIssueTypeFieldsAttachment=Nf,a.setIssueTypeFieldsAttachments=Hf,a.setIssueTypeFieldsMany=iS,a.setIssueTypes=SS,a.setIssueUpdate=OS,a.setIssueUpdates=_S,a.setIssues=zf,a.setLoggedIn=gd,a.setOrganization=WS,a.setOrganizationAccess=kS,a.setOrganizationAccesses=BS,a.setOrganizations=HS,a.setProfilePicture=US,a.setProject=Sg,a.setProjectAccess=sg,a.setProjectAccesses=ag,a.setProjectAttachment=dh,a.setProjectAttachments=uh,a.setProjectFile=ug,a.setProjectFiles=og,a.setProjects=fg,a.setRehydrated=Og,a.setTeam=ut,a.setTeamMembership=Zi,a.setTeamMemberships=vg,a.setTeams=zg,a.setTokens=yy,a.setUploadUrl=eu,a.setUser=MS,a.setUsers=wS,a.shallowEqual=Om,a.slugify=Bm,a.spacesToDashesLower=km,a.teamMembershipReducer=Ch,a.teamMembershipSlice=Ji,a.teamReducer=Wh,a.teamSlice=xi,a.toFileNameSafeString=Cm,a.toOfflineIdRecord=Fc,a.truncate=$m,a.updateAsset=tt,a.updateAssetAttachment=xm,a.updateAssetAttachments=jc,a.updateAssetProcedure=Qe,a.updateAssetProcedureAttachment=sp,a.updateAssetProcedureAttachments=Lc,a.updateAssetProcedureFieldValues=Ze,a.updateAssetProcedureFieldValuesAttachment=Fp,a.updateAssetProcedureFieldValuesAttachments=pn,a.updateAssetProcedureFieldValuesMany=Fn,a.updateAssetProcedureFields=dn,a.updateAssetProcedureFieldsAttachment=rp,a.updateAssetProcedureFieldsAttachments=xc,a.updateAssetProcedureFieldsMany=pp,a.updateAssetProcedureInstance=Xe,a.updateAssetProcedureInstances=wp,a.updateAssetProcedureStep=St,a.updateAssetProcedureStepFieldValues=et,a.updateAssetProcedureStepFieldValuesAttachment=nA,a.updateAssetProcedureStepFieldValuesAttachments=Jn,a.updateAssetProcedureStepFieldValuesMany=ar,a.updateAssetProcedureStepFields=xe,a.updateAssetProcedureStepFieldsAttachment=Np,a.updateAssetProcedureStepFieldsAttachments=kn,a.updateAssetProcedureStepFieldsMany=Xp,a.updateAssetProcedureSteps=yA,a.updateAssetProcedures=zp,a.updateAssetStage=Pt,a.updateAssetStageCompletion=gr,a.updateAssetStageCompletions=br,a.updateAssetStages=MA,a.updateAssetType=at,a.updateAssetTypeAttachment=DA,a.updateAssetTypeAttachments=jr,a.updateAssetTypeFieldValues=st,a.updateAssetTypeFieldValuesAttachment=sy,a.updateAssetTypeFieldValuesAttachments=sd,a.updateAssetTypeFieldValuesMany=od,a.updateAssetTypeFields=Zr,a.updateAssetTypeFieldsAttachment=$A,a.updateAssetTypeFieldsAttachments=Gr,a.updateAssetTypeFieldsMany=YA,a.updateAssetTypes=hy,a.updateAssets=PA,a.updateCategories=Ty,a.updateCategory=Td,a.updateConversation=vc,a.updateConversations=Wm,a.updateDocumentAttachment=wy,a.updateDocumentAttachments=Ed,a.updateDocuments=Ce,a.updateEmailDomain=Dy,a.updateEmailDomains=Cy,a.updateForm=af,a.updateFormRevision=Zy,a.updateFormRevisionAttachment=Hy,a.updateFormRevisionAttachments=nu,a.updateFormRevisions=Xy,a.updateFormSubmission=ju,a.updateFormSubmissionAttachment=lf,a.updateFormSubmissionAttachments=_u,a.updateFormSubmissions=pf,a.updateForms=cf,a.updateGeoImage=Gu,a.updateGeoImages=Af,a.updateIssue=qt,a.updateIssueAssociation=Ju,a.updateIssueAssociations=gf,a.updateIssueAttachment=Tf,a.updateIssueAttachments=ao,a.updateIssueComment=Mf,a.updateIssueCommentAttachment=_f,a.updateIssueCommentAttachments=po,a.updateIssueComments=Ef,a.updateIssueType=Al,a.updateIssueTypeAttachment=$f,a.updateIssueTypeAttachments=qo,a.updateIssueTypeFieldValues=nt,a.updateIssueTypeFieldValuesAttachment=pS,a.updateIssueTypeFieldValuesAttachments=rl,a.updateIssueTypeFieldValuesMany=xf,a.updateIssueTypeFields=tl,a.updateIssueTypeFieldsAttachment=Wf,a.updateIssueTypeFieldsAttachments=Lo,a.updateIssueTypeFieldsMany=cS,a.updateIssueTypes=gS,a.updateIssueUpdate=RS,a.updateIssueUpdates=vS,a.updateIssues=Uf,a.updateOrganization=Nl,a.updateOrganizationAccess=Ct,a.updateOrganizationAccesses=$S,a.updateOrganizations=YS,a.updateProject=Mh,a.updateProjectAccess=dt,a.updateProjectAccesses=ig,a.updateProjectAttachment=dg,a.updateProjectAttachments=oh,a.updateProjectFile=Li,a.updateProjectFiles=hg,a.updateProjects=bg,a.updateTeam=Nh,a.updateTeamMembership=wg,a.updateTeamMemberships=Mg,a.updateTeams=Ug,a.updateUser=qS,a.updateUsers=jS,a.userReducer=jl,a.userSlice=vi,a.versioningReducer=Yh,a.versioningSlice=Kh,Object.defineProperty(a,Symbol.toStringTag,{value:"Module"})});
|