@overmap-ai/core 1.0.78-improvements.0 → 1.0.78-issue-bulk-delete.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. package/dist/constants/defaults.d.ts +1 -2
  2. package/dist/enums/access.d.ts +0 -5
  3. package/dist/enums/asset.d.ts +8 -0
  4. package/dist/enums/index.d.ts +1 -1
  5. package/dist/enums/issue.d.ts +7 -6
  6. package/dist/overmap-core.js +9313 -6700
  7. package/dist/overmap-core.umd.cjs +11 -11
  8. package/dist/sdk/base.d.ts +6 -2
  9. package/dist/sdk/constants.d.ts +4 -0
  10. package/dist/sdk/errors.d.ts +5 -0
  11. package/dist/sdk/index.d.ts +6 -1
  12. package/dist/sdk/middleware/OfflineAnalyticsMiddleware.d.ts +6 -0
  13. package/dist/sdk/middleware/OfflineMiddleware.d.ts +13 -0
  14. package/dist/sdk/middleware/RateLimitingMiddleware.d.ts +6 -0
  15. package/dist/sdk/middleware/constants.d.ts +1 -0
  16. package/dist/sdk/middleware/index.d.ts +5 -0
  17. package/dist/sdk/middleware/utils.d.ts +2 -0
  18. package/dist/sdk/outbox/globals.d.ts +2 -0
  19. package/dist/sdk/{classes → outbox}/index.d.ts +1 -0
  20. package/dist/sdk/performRequest.d.ts +6 -0
  21. package/dist/sdk/services/AgentService.d.ts +3 -2
  22. package/dist/sdk/services/AssetAttachmentService.d.ts +26 -28
  23. package/dist/sdk/services/AssetProcedureService.d.ts +23 -6
  24. package/dist/sdk/services/AssetProcedureStepFieldValuesAttachmentService.d.ts +21 -4
  25. package/dist/sdk/services/AssetProcedureStepFieldValuesService.d.ts +23 -13
  26. package/dist/sdk/services/AssetProcedureStepFieldsAttachmentService.d.ts +21 -4
  27. package/dist/sdk/services/AssetProcedureStepFieldsService.d.ts +22 -5
  28. package/dist/sdk/services/AssetProcedureStepService.d.ts +25 -9
  29. package/dist/sdk/services/AssetProcedureTypeAttachmentService.d.ts +39 -0
  30. package/dist/sdk/services/AssetProcedureTypeFieldValuesAttachmentService.d.ts +33 -0
  31. package/dist/sdk/services/AssetProcedureTypeFieldValuesService.d.ts +33 -0
  32. package/dist/sdk/services/AssetProcedureTypeFieldsAttachmentService.d.ts +30 -0
  33. package/dist/sdk/services/AssetProcedureTypeFieldsService.d.ts +26 -0
  34. package/dist/sdk/services/AssetProcedureTypeService.d.ts +28 -0
  35. package/dist/sdk/services/AssetService.d.ts +25 -7
  36. package/dist/sdk/services/AssetStageCompletionService.d.ts +22 -5
  37. package/dist/sdk/services/AssetStageService.d.ts +25 -9
  38. package/dist/sdk/services/AssetTypeAttachmentService.d.ts +26 -27
  39. package/dist/sdk/services/AssetTypeFieldValuesAttachmentService.d.ts +21 -4
  40. package/dist/sdk/services/AssetTypeFieldValuesService.d.ts +23 -11
  41. package/dist/sdk/services/AssetTypeFieldsAttachmentService.d.ts +22 -5
  42. package/dist/sdk/services/AssetTypeFieldsService.d.ts +21 -4
  43. package/dist/sdk/services/AssetTypeIdentifierService.d.ts +28 -0
  44. package/dist/sdk/services/AssetTypeIdentifierValueService.d.ts +27 -0
  45. package/dist/sdk/services/AssetTypeService.d.ts +22 -5
  46. package/dist/sdk/services/AssetTypeStatusService.d.ts +28 -0
  47. package/dist/sdk/services/BaseModelApiService.d.ts +27 -0
  48. package/dist/sdk/services/BaseOfflineAttachmentModelService.d.ts +23 -0
  49. package/dist/sdk/services/BaseOfflineModelApiService.d.ts +27 -0
  50. package/dist/sdk/services/BaseService.d.ts +5 -2
  51. package/dist/sdk/services/DocumentAttachmentService.d.ts +26 -27
  52. package/dist/sdk/services/DocumentService.d.ts +23 -7
  53. package/dist/sdk/services/EmailDomainsService.d.ts +22 -5
  54. package/dist/sdk/services/FileService.d.ts +5 -1
  55. package/dist/sdk/services/FormIdentifierService.d.ts +28 -0
  56. package/dist/sdk/services/FormIdentifierValueService.d.ts +27 -0
  57. package/dist/sdk/services/FormRevisionAttachmentService.d.ts +21 -4
  58. package/dist/sdk/services/FormRevisionService.d.ts +21 -4
  59. package/dist/sdk/services/FormService.d.ts +21 -4
  60. package/dist/sdk/services/FormSubmissionAttachmentService.d.ts +22 -5
  61. package/dist/sdk/services/FormSubmissionService.d.ts +22 -5
  62. package/dist/sdk/services/GeoImageService.d.ts +23 -6
  63. package/dist/sdk/services/IssueAssociationService.d.ts +22 -5
  64. package/dist/sdk/services/IssueAttachmentService.d.ts +26 -28
  65. package/dist/sdk/services/IssueCommentAttachmentService.d.ts +26 -28
  66. package/dist/sdk/services/IssueCommentService.d.ts +23 -6
  67. package/dist/sdk/services/IssueService.d.ts +25 -6
  68. package/dist/sdk/services/IssueTypeAttachmentService.d.ts +26 -28
  69. package/dist/sdk/services/IssueTypeFieldValuesAttachmentService.d.ts +21 -4
  70. package/dist/sdk/services/IssueTypeFieldValuesService.d.ts +22 -5
  71. package/dist/sdk/services/IssueTypeFieldsAttachmentService.d.ts +21 -4
  72. package/dist/sdk/services/IssueTypeFieldsService.d.ts +22 -5
  73. package/dist/sdk/services/IssueTypeIdentifierService.d.ts +28 -0
  74. package/dist/sdk/services/IssueTypeIdentifierValueService.d.ts +27 -0
  75. package/dist/sdk/services/IssueTypeService.d.ts +22 -5
  76. package/dist/sdk/services/IssueTypeStatusService.d.ts +28 -0
  77. package/dist/sdk/services/IssueUpdateService.d.ts +160 -5
  78. package/dist/sdk/services/JWTAuthService.d.ts +1 -1
  79. package/dist/sdk/services/OrganizationAccessService.d.ts +25 -7
  80. package/dist/sdk/services/OrganizationService.d.ts +24 -7
  81. package/dist/sdk/services/ProjectAccessService.d.ts +27 -7
  82. package/dist/sdk/services/ProjectAttachmentService.d.ts +26 -27
  83. package/dist/sdk/services/ProjectFileService.d.ts +21 -7
  84. package/dist/sdk/services/ProjectService.d.ts +23 -12
  85. package/dist/sdk/services/TeamMembershipService.d.ts +28 -0
  86. package/dist/sdk/services/TeamService.d.ts +22 -8
  87. package/dist/sdk/services/UserService.d.ts +26 -5
  88. package/dist/sdk/services/index.d.ts +18 -8
  89. package/dist/sdk/typings.d.ts +21 -55
  90. package/dist/sdk/utils.d.ts +2 -0
  91. package/dist/store/adapters/modelAdapter.d.ts +13 -14
  92. package/dist/store/adapters/typings.d.ts +19 -0
  93. package/dist/store/constants.d.ts +3 -1
  94. package/dist/store/index.d.ts +1 -0
  95. package/dist/store/reducers.d.ts +45 -24
  96. package/dist/store/selectors/SelectorBuilder.d.ts +24 -0
  97. package/dist/store/selectors/hooks.d.ts +13 -0
  98. package/dist/store/selectors/index.d.ts +3 -0
  99. package/dist/store/selectors/utils.d.ts +1 -0
  100. package/dist/store/slices/agentsSlice.d.ts +12 -19
  101. package/dist/store/slices/assetAttachmentSlice.d.ts +13 -39
  102. package/dist/store/slices/assetProcedureSlice.d.ts +30 -49
  103. package/dist/store/slices/assetProcedureStepFieldValuesAttachmentSlice.d.ts +26 -46
  104. package/dist/store/slices/assetProcedureStepFieldValuesSlice.d.ts +28 -47
  105. package/dist/store/slices/assetProcedureStepFieldsAttachmentSlice.d.ts +28 -47
  106. package/dist/store/slices/assetProcedureStepFieldsSlice.d.ts +41 -53
  107. package/dist/store/slices/assetProcedureStepSlice.d.ts +30 -49
  108. package/dist/store/slices/assetProcedureTypeAttachmentSlice.d.ts +91 -0
  109. package/dist/store/slices/assetProcedureTypeFieldValuesAttachmentSlice.d.ts +111 -0
  110. package/dist/store/slices/assetProcedureTypeFieldValuesSlice.d.ts +112 -0
  111. package/dist/store/slices/assetProcedureTypeFieldsAttachmentSlice.d.ts +111 -0
  112. package/dist/store/slices/assetProcedureTypeFieldsSlice.d.ts +23 -0
  113. package/dist/store/slices/assetProcedureTypeSlice.d.ts +22 -0
  114. package/dist/store/slices/assetSlice.d.ts +27 -47
  115. package/dist/store/slices/assetStageCompletionSlice.d.ts +27 -39
  116. package/dist/store/slices/assetStageSlice.d.ts +29 -49
  117. package/dist/store/slices/assetTypeAttachmentSlice.d.ts +12 -38
  118. package/dist/store/slices/assetTypeFieldValuesAttachmentSlice.d.ts +26 -46
  119. package/dist/store/slices/assetTypeFieldValuesSlice.d.ts +26 -45
  120. package/dist/store/slices/assetTypeFieldsAttachmentSlice.d.ts +26 -45
  121. package/dist/store/slices/assetTypeFieldsSlice.d.ts +26 -45
  122. package/dist/store/slices/assetTypeIdentifierSlice.d.ts +22 -0
  123. package/dist/store/slices/assetTypeIdentifierValueSlice.d.ts +23 -0
  124. package/dist/store/slices/assetTypeSlice.d.ts +13 -39
  125. package/dist/store/slices/assetTypeStatusSlice.d.ts +111 -0
  126. package/dist/store/slices/documentAttachmentSlice.d.ts +13 -39
  127. package/dist/store/slices/documentSlice.d.ts +19 -111
  128. package/dist/store/slices/emailDomainsSlice.d.ts +33 -27
  129. package/dist/store/slices/formIdentifierSlice.d.ts +22 -0
  130. package/dist/store/slices/formIdentifierValueSlice.d.ts +23 -0
  131. package/dist/store/slices/formRevisionAttachmentSlice.d.ts +102 -37
  132. package/dist/store/slices/formRevisionSlice.d.ts +27 -34
  133. package/dist/store/slices/formSlice.d.ts +29 -35
  134. package/dist/store/slices/formSubmissionAttachmentSlice.d.ts +14 -38
  135. package/dist/store/slices/formSubmissionSlice.d.ts +11 -39
  136. package/dist/store/slices/geoImageSlice.d.ts +28 -47
  137. package/dist/store/slices/index.d.ts +15 -8
  138. package/dist/store/slices/issueAssociationSlice.d.ts +32 -49
  139. package/dist/store/slices/issueAttachmentSlice.d.ts +13 -39
  140. package/dist/store/slices/issueCommentAttachmentSlice.d.ts +13 -39
  141. package/dist/store/slices/issueCommentSlice.d.ts +13 -27
  142. package/dist/store/slices/issueSlice.d.ts +17 -29
  143. package/dist/store/slices/issueTypeAttachmentSlice.d.ts +12 -38
  144. package/dist/store/slices/issueTypeFieldValuesAttachmentSlice.d.ts +26 -46
  145. package/dist/store/slices/issueTypeFieldValuesSlice.d.ts +26 -45
  146. package/dist/store/slices/issueTypeFieldsAttachmentSlice.d.ts +26 -45
  147. package/dist/store/slices/issueTypeFieldsSlice.d.ts +26 -45
  148. package/dist/store/slices/issueTypeIdentifierSlice.d.ts +22 -0
  149. package/dist/store/slices/issueTypeIdentifierValueSlice.d.ts +23 -0
  150. package/dist/store/slices/issueTypeSlice.d.ts +13 -26
  151. package/dist/store/slices/issueTypeStatusSlice.d.ts +111 -0
  152. package/dist/store/slices/issueUpdateSlice.d.ts +222 -27
  153. package/dist/store/slices/organizationAccessSlice.d.ts +18 -20
  154. package/dist/store/slices/organizationSlice.d.ts +27 -52
  155. package/dist/store/slices/outboxSlice.d.ts +6 -7
  156. package/dist/store/slices/projectAccessSlice.d.ts +18 -23
  157. package/dist/store/slices/projectAttachmentSlice.d.ts +14 -40
  158. package/dist/store/slices/projectFileSlice.d.ts +28 -48
  159. package/dist/store/slices/projectSlice.d.ts +30 -52
  160. package/dist/store/slices/teamMembershipSlice.d.ts +23 -0
  161. package/dist/store/slices/teamSlice.d.ts +13 -25
  162. package/dist/store/slices/userSlice.d.ts +102 -43
  163. package/dist/store/store.d.ts +4 -14
  164. package/dist/store/typings.d.ts +18 -1
  165. package/dist/typings/files.d.ts +15 -14
  166. package/dist/typings/index.d.ts +0 -3
  167. package/dist/typings/models/agents.d.ts +2 -1
  168. package/dist/typings/models/assets.d.ts +80 -51
  169. package/dist/typings/models/base.d.ts +22 -13
  170. package/dist/typings/models/documents.d.ts +9 -4
  171. package/dist/typings/models/emailDomain.d.ts +2 -1
  172. package/dist/typings/models/emailVerification.d.ts +7 -5
  173. package/dist/typings/models/fields.d.ts +7 -7
  174. package/dist/typings/models/forms.d.ts +16 -11
  175. package/dist/typings/models/geoImages.d.ts +8 -8
  176. package/dist/typings/models/index.d.ts +0 -4
  177. package/dist/typings/models/issues.d.ts +65 -37
  178. package/dist/typings/models/organizations.d.ts +4 -5
  179. package/dist/typings/models/projects.d.ts +11 -10
  180. package/dist/typings/models/teams.d.ts +8 -5
  181. package/dist/typings/models/users.d.ts +4 -2
  182. package/dist/utils/index.d.ts +2 -2
  183. package/dist/utils/models/assets.d.ts +5 -0
  184. package/dist/utils/models/documents.d.ts +4 -0
  185. package/dist/utils/models/index.d.ts +3 -0
  186. package/dist/utils/models/issues.d.ts +2 -0
  187. package/dist/utils/utils.d.ts +0 -7
  188. package/dist/utils/uuid.d.ts +7 -0
  189. package/package.json +34 -52
  190. package/dist/enums/licenses.d.ts +0 -14
  191. package/dist/sdk/services/AssetProcedureAttachmentService.d.ts +0 -40
  192. package/dist/sdk/services/AssetProcedureFieldValuesAttachmentService.d.ts +0 -16
  193. package/dist/sdk/services/AssetProcedureFieldValuesService.d.ts +0 -22
  194. package/dist/sdk/services/AssetProcedureFieldsAttachmentService.d.ts +0 -13
  195. package/dist/sdk/services/AssetProcedureFieldsService.d.ts +0 -9
  196. package/dist/sdk/services/AssetProcedureInstanceService.d.ts +0 -11
  197. package/dist/sdk/services/BaseAttachmentService.d.ts +0 -38
  198. package/dist/sdk/services/BaseUploadService.d.ts +0 -10
  199. package/dist/sdk/services/CategoryService.d.ts +0 -11
  200. package/dist/sdk/services/LicenseService.d.ts +0 -14
  201. package/dist/store/slices/assetProcedureAttachmentSlice.d.ts +0 -48
  202. package/dist/store/slices/assetProcedureFieldValuesAttachmentSlice.d.ts +0 -131
  203. package/dist/store/slices/assetProcedureFieldValuesSlice.d.ts +0 -131
  204. package/dist/store/slices/assetProcedureFieldsAttachmentSlice.d.ts +0 -130
  205. package/dist/store/slices/assetProcedureFieldsSlice.d.ts +0 -131
  206. package/dist/store/slices/assetProcedureInstanceSlice.d.ts +0 -132
  207. package/dist/store/slices/categorySlice.d.ts +0 -111
  208. package/dist/store/slices/licenseSlice.d.ts +0 -25
  209. package/dist/typings/colors.d.ts +0 -8
  210. package/dist/typings/json.d.ts +0 -6
  211. package/dist/typings/memoization.d.ts +0 -1
  212. package/dist/typings/models/attachments.d.ts +0 -31
  213. package/dist/typings/models/categories.d.ts +0 -8
  214. package/dist/typings/models/issueTypes.d.ts +0 -7
  215. package/dist/typings/models/license.d.ts +0 -13
  216. package/dist/typings/models/store.d.ts +0 -0
  217. package/dist/typings/search.d.ts +0 -23
  218. package/dist/utils/coordinates.d.ts +0 -4
  219. package/dist/utils/offline.d.ts +0 -13
  220. /package/dist/sdk/{classes → outbox}/OutboxCoordinator.d.ts +0 -0
  221. /package/dist/sdk/{classes → outbox}/OutboxCoordinator.spec.d.ts +0 -0
@@ -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("@overmap-ai/forms"),require("idb"),require("@redux-offline/redux-offline/lib/constants"),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","@redux-offline/redux-offline/lib/constants","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,null,i.idb,i.constants,i.jwtDecode,i.dependencyGraph))})(this,function(i,j,l,Ve,Ie,im,am,sc,Ib,cm,nm,Rb,rm,dm,um,om){"use strict";var Fb=Object.defineProperty;var Tb=(i,j,l)=>j in i?Fb(i,j,{enumerable:!0,configurable:!0,writable:!0,value:l}):i[j]=l;var f=(i,j,l)=>Tb(i,typeof j!="symbol"?j+"":j,l);var sm;const ic=Object.freeze([]),ac=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||{}),cc=(t=>(t.Issue="issue",t.Asset="asset",t.AssetType="asset_type",t.Project="project",t.Document="document",t))(cc||{}),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||{}),nc=(t=>(t.COMPLETED="checkout.completed",t.CLOSED="checkout.closed",t))(nc||{}),rc=(t=>(t[t.PRO=0]="PRO",t))(rc||{}),dc=(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))(dc||{});const lm=Nt.BACKLOG,hm=Lt.MEDIUM,uc=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 mm(){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",oc="RESET";sm=Symbol.toStringTag;class lc{constructor(){f(this,sm,"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 pm=t=>({type:"Point",coordinates:t}),Am=t=>({type:"MultiPoint",coordinates:t}),ym=(t,e)=>t[0]===e[0]&&t[1]===e[1];let Ht=!1;["true","1"].includes("".toLowerCase())&&(Ht=!0);function fm(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 Sm(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?ic:t,Re=t=>Object.keys(t).length===0?ac:t,hc=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)}),gm=new Intl.RelativeTimeFormat([],{style:"long",numeric:"auto"}),bm=1e3*86400,Kt=new Date,Pm=t=>new Date(t).toDateString()===Kt.toDateString(),Fm=Wt((t,e,s)=>{const a=Math.round((new Date(t).getTime()-Kt.getTime())/bm);return a<e||a>s?hc(t):gm.format(a,"days")});function Tm(t){return new Uint8Array(t).reduce((s,a)=>s+a.toString(16).padStart(2,"0"),"")}const Yt=async(t,e)=>{e||(e=await ke(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 ke(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=Tm(n);e(r)})},a.readAsArrayBuffer(t)})}function Im(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 mc(t,e){return new File([t],e,{type:t.type})}function Rm(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 Om=async t=>{const e={};for(const s of t){const a=await ke(s);e[a]={sha1:a,extension:s.name.split(".").pop()||"",file_type:s.type,size:s.size}}return Object.values(e)},pc=async t=>(await fetch(t)).blob(),_m=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 vm(t){const e=new Blob([t]);im.saveAs(e,t.name)}const Ac={};function wm(t,e,s,...a){const c=Ac[t];let n=!1;c?c[e]||(c[e]=!0,n=!0):(Ac[t]={[e]:!0},n=!0),n&&console[s](...a)}const yc=["created_at","updated_at","index","revision"];function I(t){return{...t,uuid:Ie.v4()}}function fc(t){const e={};for(const s of t)e[s.uuid]=s;return e}function Em(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 qm(t){return t.toLowerCase().replace(" ","-")}function jm(t,e=!1){return t.normalize("NFKD").toLowerCase().replace(/[^\w\s-]/g,"").trim().replace(/[-\s]+/g,e?"_":"-")}function Mm(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 Sc(t,e,s){return s.findIndex(a=>a.uuid===t.uuid)===e}function Vm(t,e,s){return s.findIndex(a=>a.file_sha1===t.file_sha1)===e}const km=/^.+@.+\..+$/;function _(t){const e={...t};for(const s of[...yc,"created_by"])s in e&&delete e[s];return e}const He=F(t=>t.uuid),gc=He.getInitialState({}),Jt=l.createSlice({name:"agents",initialState:gc,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,gc)),reducers:{initializeConversations:He.initialize,addConversation:He.addOne,setConversation:He.setOne,updateConversation:He.updateOne}}),{initializeConversations:bc,addConversation:Pc,setConversation:Fc,updateConversation:Tc}=Jt.actions,Xt=t=>t.agentsReducer.instances,zm=l.createSelector([Xt],t=>Object.values(t)),Cm=S(l.createSelector([Xt,(t,e)=>e],(t,e)=>t[e])),Ic=Jt.reducer,k=F(t=>t.uuid),Rc=k.getInitialState({}),Qt=l.createSlice({name:"assetAttachments",initialState:Rc,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Rc)),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:Dm,addAssetAttachments:xt,setAssetAttachment:Oc,setAssetAttachments:Um,updateAssetAttachment:$m,updateAssetAttachments:_c,deleteAssetAttachment:vc,deleteAssetAttachments:es}=Qt.actions,wc=t=>t.assetAttachmentReducer.instances,Ec=l.createSelector([wc],t=>Object.values(t)),qc=t=>e=>e.assetAttachmentReducer.instances[t],jc=S(l.createSelector([Ec,(t,e)=>e],(t,e)=>g(t.filter(({asset:s})=>e===s)))),Mc=Qt.reducer,z=F(t=>t.uuid),Vc=z.getInitialState({}),ts=l.createSlice({name:"assetProcedureAttachments",initialState:Vc,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Vc)),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:kc,addAssetProcedureAttachment:Bm,addAssetProcedureAttachments:zc,setAssetProcedureAttachment:Cc,setAssetProcedureAttachments:Gm,updateAssetProcedureAttachment:Lm,updateAssetProcedureAttachments:Dc,deleteAssetProcedureAttachment:Uc,deleteAssetProcedureAttachments:$c}=ts.actions,Bc=t=>t.assetProcedureAttachmentReducer.instances,Gc=l.createSelector([Bc],t=>Object.values(t)),Lc=t=>e=>e.assetProcedureAttachmentReducer.instances[t],Nm=S(l.createSelector([Gc,(t,e)=>e],(t,e)=>g(t.filter(({asset_procedure:s})=>e===s)))),Nc=ts.reducer,C=F(t=>t.uuid),Hc=C.getInitialState({}),ss=l.createSlice({name:"assetProcedureFieldsAttachments",initialState:Hc,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Hc)),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:Wc,addAssetProcedureFieldsAttachment:Hm,addAssetProcedureFieldsAttachments:Kc,setAssetProcedureFieldsAttachment:Wm,setAssetProcedureFieldsAttachments:Km,updateAssetProcedureFieldsAttachment:Ym,updateAssetProcedureFieldsAttachments:Yc,deleteAssetProcedureFieldsAttachment:Jm,deleteAssetProcedureFieldsAttachments:Jc}=ss.actions,Xc=t=>t.assetProcedureFieldsAttachmentReducer.instances,Qc=l.createSelector([Xc],t=>Object.values(t)),Xm=S(l.createSelector([Qc,(t,e)=>e],(t,e)=>g(t.filter(s=>s.fields_revision===e)))),Qm=t=>e=>e.assetProcedureFieldsAttachmentReducer.instances[t],Zc=ss.reducer,D=F(t=>t.uuid),xc=D.getInitialState({}),is=l.createSlice({name:"assetProcedureFields",initialState:xc,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,xc)),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:en,addAssetProcedureFields:tn,addAssetProcedureFieldsMany:Zm,setAssetProcedureFields:xm,setAssetProcedureFieldsMany:ep,updateAssetProcedureFields:sn,updateAssetProcedureFieldsMany:tp,deleteAssetProcedureFields:an,deleteAssetProcedureFieldsMany:sp}=is.actions,cn=t=>t.assetProcedureFieldsReducer.instances,as=l.createSelector([cn],t=>Object.values(t)),ip=S(l.createSelector([as,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_procedure===e)))),ap=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])),cp=t=>e=>e.assetProcedureFieldsReducer.instances[t],nn=is.reducer,U=F(t=>t.uuid),rn=U.getInitialState({}),cs=l.createSlice({name:"assetProcedureFieldValuesAttachments",initialState:rn,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,rn)),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:dn,addAssetProcedureFieldValuesAttachment:np,addAssetProcedureFieldValuesAttachments:dt,setAssetProcedureFieldValuesAttachment:rp,setAssetProcedureFieldValuesAttachments:dp,updateAssetProcedureFieldValuesAttachment:up,updateAssetProcedureFieldValuesAttachments:un,deleteAssetProcedureFieldValuesAttachment:op,deleteAssetProcedureFieldValuesAttachments:ut}=cs.actions,ns=t=>t.assetProcedureFieldValuesAttachmentReducer.instances,on=l.createSelector([ns],t=>Object.values(t)),lp=t=>e=>e.assetProcedureFieldValuesAttachmentReducer.instances[t],ln=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)))})),hn=S(l.createSelector([on,(t,e)=>e],(t,e)=>g(t.filter(s=>s.field_values===e)))),mn=cs.reducer,$=F(t=>t.uuid),pn=$.getInitialState({}),rs=l.createSlice({name:"assetProcedureFieldValues",initialState:pn,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,pn)),reducers:{initializeAssetProcedureFieldValues:$.initialize,addAssetProcedureFieldValues:$.addOne,addAssetProcedureFieldValuesMany:$.addMany,setAssetProcedureFieldValues:$.setOne,setAssetProcedureFieldValuesMany:$.setMany,updateAssetProcedureFieldValues:$.updateOne,updateAssetProcedureFieldValuesMany:$.updateMany,deleteAssetProcedureFieldValues:$.deleteOne,deleteAssetProcedureFieldValuesMany:$.deleteMany}}),{initializeAssetProcedureFieldValues:An,addAssetProcedureFieldValues:ds,addAssetProcedureFieldValuesMany:yn,setAssetProcedureFieldValues:hp,setAssetProcedureFieldValuesMany:mp,updateAssetProcedureFieldValues:We,updateAssetProcedureFieldValuesMany:fn,deleteAssetProcedureFieldValues:us,deleteAssetProcedureFieldValuesMany:Sn}=rs.actions,gn=t=>t.assetProcedureFieldValuesReducer.instances,os=l.createSelector([gn],t=>Object.values(t)),pp=S(l.createSelector([os,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset===e)))),Ap=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],bn=rs.reducer,B=F(t=>t.uuid),Pn=B.getInitialState({}),hs=l.createSlice({name:"assetProcedureInstances",initialState:Pn,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Pn)),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:Fn,addAssetProcedureInstance:ms,addAssetProcedureInstances:Tn,updateAssetProcedureInstance:Ke,updateAssetProcedureInstances:yp,deleteAssetProcedureInstance:ps,deleteAssetProcedureInstances:In,setAssetProcedureInstance:fp,setAssetProcedureInstances:Sp}=hs.actions,As=t=>t.assetProcedureInstanceReducer.instances,ys=l.createSelector([As],t=>Object.values(t)),Rn=S(l.createSelector([ys,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_procedure===e)))),gp=S(l.createSelector([ys,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_type===e)))),fs=t=>e=>e.assetProcedureInstanceReducer.instances[t],bp=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)})),On=hs.reducer,G=F(t=>t.uuid),_n=G.getInitialState({}),Ss=l.createSlice({name:"assetProcedures",initialState:_n,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,_n)),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:vn,addAssetProcedure:gs,addAssetProcedures:Pp,updateAssetProcedure:Ye,updateAssetProcedures:Fp,deleteAssetProcedure:bs,deleteAssetProcedures:Tp,setAssetProcedure:Ip,setAssetProcedures:Rp}=Ss.actions,Ps=t=>t.assetProcedureReducer.instances,wn=l.createSelector([Ps],t=>Object.values(t)),Op=S(l.createSelector([wn,(t,e)=>e],(t,e)=>g(t.filter(s=>s.organization===e)))),Fs=t=>e=>e.assetProcedureReducer.instances[t],_p=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)})),En=Ss.reducer,L=F(t=>t.uuid),qn=L.getInitialState({}),Ts=l.createSlice({name:"assetProcedureStepFieldsAttachments",initialState:qn,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,qn)),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:jn,addAssetProcedureStepFieldsAttachment:vp,addAssetProcedureStepFieldsAttachments:Mn,setAssetProcedureStepFieldsAttachment:wp,setAssetProcedureStepFieldsAttachments:Ep,updateAssetProcedureStepFieldsAttachment:qp,updateAssetProcedureStepFieldsAttachments:Vn,deleteAssetProcedureStepFieldsAttachment:jp,deleteAssetProcedureStepFieldsAttachments:kn}=Ts.actions,zn=t=>t.assetProcedureStepFieldsAttachmentReducer.instances,Cn=l.createSelector([zn],t=>Object.values(t)),Mp=S(l.createSelector([Cn,(t,e)=>e],(t,e)=>g(t.filter(s=>s.fields_revision===e)))),Vp=t=>e=>e.assetProcedureStepFieldsAttachmentReducer.instances[t],Dn=Ts.reducer,N=F(t=>t.uuid),Un=N.getInitialState({}),Is=l.createSlice({name:"assetProcedureStepFields",initialState:Un,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Un)),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:$n,addAssetProcedureStepFields:Rs,addAssetProcedureStepFieldsMany:kp,setAssetProcedureStepFields:zp,setAssetProcedureStepFieldsMany:Cp,updateAssetProcedureStepFields:Je,updateAssetProcedureStepFieldsMany:Dp,deleteAssetProcedureStepFields:Os,deleteAssetProcedureStepFieldsMany:Up}=Is.actions,_s=t=>t.assetProcedureStepFieldsReducer.instances,vs=l.createSelector([_s],t=>Object.values(t)),$p=S(l.createSelector([vs,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_procedure_step===e)))),Bp=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])),Gp=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}),Lp=t=>e=>e.assetProcedureStepFieldsReducer.instances[t],Bn=Is.reducer,H=F(t=>t.uuid),Gn=H.getInitialState({}),ws=l.createSlice({name:"assetProcedureStepFieldValuesAttachments",initialState:Gn,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Gn)),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:Ln,addAssetProcedureStepFieldValuesAttachment:Np,addAssetProcedureStepFieldValuesAttachments:ot,setAssetProcedureStepFieldValuesAttachment:Hp,setAssetProcedureStepFieldValuesAttachments:Wp,updateAssetProcedureStepFieldValuesAttachment:Kp,updateAssetProcedureStepFieldValuesAttachments:Nn,deleteAssetProcedureStepFieldValuesAttachment:Yp,deleteAssetProcedureStepFieldValuesAttachments:lt}=ws.actions,Es=t=>t.assetProcedureStepFieldValuesAttachmentReducer.instances,Hn=l.createSelector([Es],t=>Object.values(t)),Jp=t=>e=>e.assetProcedureStepFieldValuesAttachmentReducer.instances[t],Wn=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)))})),Kn=S(l.createSelector([Hn,(t,e)=>e],(t,e)=>g(t.filter(s=>s.field_values===e)))),Yn=ws.reducer,W=F(t=>t.uuid),Jn=W.getInitialState({}),qs=l.createSlice({name:"assetProcedureStepFieldValues",initialState:Jn,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Jn)),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:Xn,addAssetProcedureStepFieldValues:js,addAssetProcedureStepFieldValuesMany:Qn,setAssetProcedureStepFieldValues:Xp,setAssetProcedureStepFieldValuesMany:Qp,updateAssetProcedureStepFieldValues:Xe,updateAssetProcedureStepFieldValuesMany:Zn,deleteAssetProcedureStepFieldValues:Ms,deleteAssetProcedureStepFieldValuesMany:xn}=qs.actions,er=t=>t.assetProcedureStepFieldValuesReducer.instances,ht=l.createSelector([er],t=>Object.values(t)),Zp=S(l.createSelector([ht,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset===e)))),xp=S(l.createSelector([ht,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_procedure_instance===e)))),eA=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],tr=qs.reducer,K=F(t=>t.uuid),sr=K.getInitialState({}),ks=l.createSlice({name:"assetProcedureSteps",initialState:sr,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,sr)),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:ir,setAssetProcedureStep:ar,setAssetProcedureSteps:tA,addAssetProcedureStep:sA,addAssetProcedureSteps:zs,updateAssetProcedureStep:Cs,updateAssetProcedureSteps:mt,deleteAssetProcedureStep:iA,deleteAssetProcedureSteps:Ds}=ks.actions,cr=ks.reducer,pt=t=>t.assetProcedureStepReducer.instances,nr=t=>e=>e.assetProcedureStepReducer.instances[t],rr=l.createSelector([pt],t=>Object.values(t)),aA=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 Re(s)})),cA=S(l.createSelector([rr,(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),dr=Y.getInitialState({}),$s=l.createSlice({name:"assets",initialState:dr,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,dr)),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:ur,addAsset:Bs,addAssets:At,updateAsset:Qe,updateAssets:nA,deleteAsset:Gs,deleteAssets:or,setAsset:rA,setAssets:dA}=$s.actions,Ls=t=>t.assetReducer.instances,lr=l.createSelector([Ls],t=>g(Object.values(t))),Ns=S(l.createSelector([lr,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_type===e)))),Hs=t=>e=>e.assetReducer.instances[t],hr=S(l.createSelector([Ls,(t,e)=>e],(t,e)=>{const s=[];for(const a of e){const c=t[a];c&&s.push(c)}return g(s)})),uA=t=>e=>Ns(t)(e).length,mr=$s.reducer,Pe=F(t=>t.uuid),pr=Pe.getInitialState({}),Ws=l.createSlice({name:"assetStageCompletions",initialState:pr,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,pr)),reducers:{initializeAssetStageCompletions:Pe.initialize,addAssetStageCompletion:Pe.addOne,addAssetStageCompletions:Pe.addMany,updateAssetStageCompletion:Pe.updateOne,updateAssetStageCompletions:Pe.updateMany,deleteAssetStageCompletion:Pe.deleteOne,deleteAssetStageCompletions:Pe.deleteMany}}),{initializeAssetStageCompletions:Ar,addAssetStageCompletion:Ks,addAssetStageCompletions:Ys,updateAssetStageCompletion:yr,updateAssetStageCompletions:fr,deleteAssetStageCompletion:Js,deleteAssetStageCompletions:Xs}=Ws.actions,Sr=Ws.reducer,Qs=t=>t.assetStageCompletionReducer.instances,oA=l.createSelector([Qs],t=>Object.values(t)),gr=t=>e=>e.assetStageCompletionReducer.instances[t],br=S(l.createSelector([Qs,(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({}),Zs=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:lA,addAssetStage:hA,addAssetStages:xs,updateAssetStage:ei,updateAssetStages:yt,deleteAssetStage:mA,deleteAssetStages:ti}=Zs.actions,Ir=Zs.reducer,ft=t=>t.assetStageReducer.instances,Rr=t=>e=>e.assetStageReducer.instances[t],Or=l.createSelector([ft],t=>Object.values(t)),pA=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 Re(s)})),AA=S(l.createSelector([Or,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_procedure===e)))),si=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({}),ii=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:yA,addAssetTypeAttachments:ai,setAssetTypeAttachment:wr,setAssetTypeAttachments:fA,updateAssetTypeAttachment:SA,updateAssetTypeAttachments:Er,deleteAssetTypeAttachment:qr,deleteAssetTypeAttachments:ci}=ii.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=ii.reducer,Q=F(t=>t.uuid),Cr=Q.getInitialState({}),ni=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:gA,addAssetTypeFieldsAttachments:Ur,setAssetTypeFieldsAttachment:bA,setAssetTypeFieldsAttachments:PA,updateAssetTypeFieldsAttachment:FA,updateAssetTypeFieldsAttachments:$r,deleteAssetTypeFieldsAttachment:TA,deleteAssetTypeFieldsAttachments:Br}=ni.actions,Gr=t=>t.assetTypeFieldsAttachmentReducer.instances,Lr=l.createSelector([Gr],t=>Object.values(t)),IA=S(l.createSelector([Lr,(t,e)=>e],(t,e)=>g(t.filter(s=>s.fields_revision===e)))),RA=t=>e=>e.assetTypeFieldsAttachmentReducer.instances[t],Nr=ni.reducer,Z=F(t=>t.uuid),Hr=Z.getInitialState({}),ri=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:OA,setAssetTypeFields:_A,setAssetTypeFieldsMany:vA,updateAssetTypeFields:Yr,updateAssetTypeFieldsMany:wA,deleteAssetTypeFields:Jr,deleteAssetTypeFieldsMany:EA}=ri.actions,Xr=t=>t.assetTypeFieldsReducer.instances,St=l.createSelector([Xr],t=>Object.values(t)),qA=S(l.createSelector([St,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset_type===e)))),jA=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])),MA=t=>e=>e.assetTypeFieldsReducer.instances[t],Qr=ri.reducer,x=F(t=>t.uuid),Zr=x.getInitialState({}),di=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:VA,addAssetTypeFieldValuesAttachments:gt,setAssetTypeFieldValuesAttachment:kA,setAssetTypeFieldValuesAttachments:zA,updateAssetTypeFieldValuesAttachment:CA,updateAssetTypeFieldValuesAttachments:ed,deleteAssetTypeFieldValuesAttachment:DA,deleteAssetTypeFieldValuesAttachments:bt}=di.actions,ui=t=>t.assetTypeFieldValuesAttachmentReducer.instances,td=l.createSelector([ui],t=>Object.values(t)),UA=t=>e=>e.assetTypeFieldValuesAttachmentReducer.instances[t],sd=S(l.createSelector([ui,(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=di.reducer,ee=F(t=>t.uuid),cd=ee.getInitialState({}),oi=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:li,addAssetTypeFieldValuesMany:rd,setAssetTypeFieldValues:$A,setAssetTypeFieldValuesMany:BA,updateAssetTypeFieldValues:Ze,updateAssetTypeFieldValuesMany:dd,deleteAssetTypeFieldValues:hi,deleteAssetTypeFieldValuesMany:ud}=oi.actions,od=t=>t.assetTypeFieldValuesReducer.instances,mi=l.createSelector([od],t=>Object.values(t)),GA=S(l.createSelector([mi,(t,e)=>e],(t,e)=>g(t.filter(s=>s.asset===e)))),LA=S(l.createSelector([St,mi,(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)))})),pi=t=>e=>e.assetTypeFieldValuesReducer.instances[t],ld=oi.reducer,te=F(t=>t.uuid),hd=te.getInitialState({}),Ai=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:NA,setAssetTypes:HA,addAssetType:yi,addAssetTypes:WA,updateAssetType:xe,updateAssetTypes:KA,deleteAssetType:fi,deleteAssetTypes:YA}=Ai.actions,Si=t=>t.assetTypeReducer.instances,JA=l.createSelector([Si],t=>Object.values(t)),gi=t=>e=>e.assetTypeReducer.instances[t],XA=S(l.createSelector([Si,(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=Ai.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:QA,clearTokens:ZA,setLoggedIn:yd}=Pt.actions,xA=t=>t.authReducer.accessToken,ey=t=>t.authReducer.isLoggedIn,fd=Pt.reducer,et=F(t=>t.uuid),Sd=et.getInitialState({}),bi=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:Pi,updateCategory:bd,deleteCategory:Pd}=bi.actions,Fi=t=>t.categoryReducer.instances,ty=l.createSelector([Fi],t=>Object.values(t)),Ti=t=>e=>e.categoryReducer.instances[t],sy=S(l.createSelector([Fi,(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)})),iy=t=>e=>Object.values(e.issueReducer.instances).filter(s=>s.category===t).length,Fd=bi.reducer,se=F(t=>t.uuid),Td=se.getInitialState({}),Ii=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:ay,addDocumentAttachments:Rd,setDocumentAttachment:Od,setDocumentAttachments:cy,updateDocumentAttachment:ny,updateDocumentAttachments:_d,deleteDocumentAttachment:vd,deleteDocumentAttachments:wd}=Ii.actions,Ed=t=>t.documentAttachmentReducer.instances,qd=l.createSelector([Ed],t=>Object.values(t)),jd=t=>e=>e.documentAttachmentReducer.instances[t],ry=S(l.createSelector([qd,(t,e)=>e],(t,e)=>g(t.filter(({document:s})=>e===s)))),Md=Ii.reducer,Vd={documents:{}},Ri=l.createSlice({name:"documents",initialState:Vd,extraReducers:t=>t.addCase("RESET",e=>{Object.assign(e,Vd)}),reducers:{setDocuments:(t,e)=>{if(e.payload.filter(Sc).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 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:Fe,moveDocument:Cd,removeDocuments:Oi}=Ri.actions,ze=t=>t.documentsReducer.documents,Dd=l.createSelector([ze],t=>Object.values(t)),Ud=t=>e=>e.documentsReducer.documents[t],dy=S(l.createSelector([ze,(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)})),uy=S(l.createSelector([ze,(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)})),oy=l.createSelector([Dd],t=>g(t.filter(e=>!e.parent_document))),$d=Ri.reducer,Ft=F(t=>t.uuid),ly=Ft.getInitialState({}),_i=l.createSlice({name:"emailDomains",initialState:ly,reducers:{initializeEmailDomains:Ft.initialize,addEmailDomain:Ft.addOne,deleteEmailDomain:Ft.deleteOne}}),{initializeEmailDomains:Bd,addEmailDomain:Gd,deleteEmailDomain:Ld}=_i.actions,Nd=t=>t.emailDomainsReducer.instances,Hd=l.createSelector([Nd],t=>Object.values(t)),hy=S(l.createSelector([Hd,(t,e)=>e],(t,e)=>g(t.filter(s=>s.organization===e)))),Wd=_i.reducer,Kd={s3Urls:{}},Yd=1e3*60*60,my=Yd*24*7,vi=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()+my);t.s3Urls[c]={url:s,fields:a,exp:r.getTime()}}}}),{setUploadUrl:Jd}=vi.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=vi.reducer,ie=F(t=>t.uuid),Zd=ie.getInitialState({}),wi=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:py,addFormRevisionAttachments:eu,setFormRevisionAttachment:Ay,setFormRevisionAttachments:yy,updateFormRevisionAttachment:fy,updateFormRevisionAttachments:tu,deleteFormRevisionAttachment:Sy,deleteFormRevisionAttachments:su}=wi.actions,iu=t=>t.formRevisionAttachmentReducer.instances,gy=S(l.createSelector([iu,(t,e)=>e],(t,e)=>g(Object.values(t).filter(s=>s.form_revision===e)))),au=wi.reducer,by=(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},Oe=F(t=>t.uuid),cu=Oe.getInitialState({}),Ei=l.createSlice({name:"formRevisions",initialState:cu,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,cu)),reducers:{initializeFormRevisions:Oe.initialize,setFormRevision:Oe.setOne,addFormRevision:Oe.addOne,addFormRevisions:Oe.addMany,deleteFormRevision:Oe.deleteOne,deleteFormRevisions:Oe.deleteMany}}),{setFormRevision:nu,initializeFormRevisions:ru,addFormRevision:qi,addFormRevisions:du,deleteFormRevision:ji,deleteFormRevisions:uu}=Ei.actions,Tt=t=>t.formRevisionReducer.instances,ou=l.createSelector([Tt],t=>Object.values(t)),Py=t=>e=>e.formRevisionReducer.instances[t],Fy=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(by)[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=Ei.reducer,_e=F(t=>t.uuid),mu=_e.getInitialState({}),Mi=l.createSlice({name:"forms",initialState:mu,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,mu)),reducers:{initializeForms:_e.initialize,setForm:_e.setOne,addForm:_e.addOne,addForms:_e.addMany,updateForm:_e.updateOne,deleteForm:_e.deleteOne}}),{initializeForms:pu,setForm:Ty,addForm:Vi,addForms:Iy,updateForm:Ry,deleteForm:ki}=Mi.actions,Au=Mi.reducer,yu=t=>t.formReducer.instances,Oy=l.createSelector([yu],t=>Object.values(t)),fu=t=>e=>e.formReducer.instances[t],ae=F(t=>t.uuid),Su=ae.getInitialState({}),zi=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:_y,addFormSubmissionAttachments:It,setFormSubmissionAttachment:vy,setFormSubmissionAttachments:wy,updateFormSubmissionAttachment:Ey,updateFormSubmissionAttachments:bu,deleteFormSubmissionAttachment:qy,deleteFormSubmissionAttachments:Rt}=zi.actions,Ci=t=>t.formSubmissionAttachmentReducer.instances,Pu=S(l.createSelector([Ci,(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([Ci,(t,e)=>e],(t,e)=>g(Object.values(t).filter(s=>s.form_submission===e)))),Tu=zi.reducer,ce=F(t=>t.uuid),Iu=ce.getInitialState({}),Di=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:jy,addFormSubmission:Ui,addFormSubmissions:_t,updateFormSubmission:Ou,updateFormSubmissions:My,deleteFormSubmission:$i,deleteFormSubmissions:vt}=Di.actions,Bi=t=>t.formSubmissionReducer.instances,Gi=l.createSelector([Bi],t=>Object.values(t)),Li=t=>e=>e.formSubmissionReducer.instances[t],_u=S(l.createSelector([Bi,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([Gi,(t,e)=>e],(t,e)=>Object.values(t).filter(s=>s.issue===e))),wu=S(l.createSelector([Gi,(t,e)=>e],(t,e)=>t.filter(s=>s.asset===e))),Eu=Di.reducer,ne=F(t=>t.uuid),qu=ne.getInitialState({}),Ni=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:Vy,deleteGeoImage:Hi,deleteGeoImages:Cu}=Ni.actions,Du=t=>t.geoImageReducer.instances,Uu=l.createSelector([Du],t=>Object.values(t)),Wi=t=>e=>e.geoImageReducer.instances[t],ky=S(l.createSelector([Uu,(t,e)=>e],(t,e)=>g(t.filter(s=>s.project===e)))),$u=Ni.reducer,re=F(t=>t.uuid),Bu=re.getInitialState({}),Ki=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:zy,setIssueAssociation:Cy,updateIssueAssociation:Lu,updateIssueAssociations:Dy,addIssueAssociation:Yi,addIssueAssociations:Ji,deleteIssueAssociation:Xi,deleteIssueAssociations:Qi}=Ki.actions,st=t=>t.issueAssociationReducer.instances,Uy=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=Ki.reducer,de=F(t=>t.uuid),Ju=de.getInitialState({}),Zi=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:xi,addIssueAttachment:$y,addIssueAttachments:ea,setIssueAttachment:Xu,setIssueAttachments:By,updateIssueAttachment:Gy,updateIssueAttachments:Qu,deleteIssueAttachment:Zu,deleteIssueAttachments:ta}=Zi.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=Zi.reducer,ue=F(t=>t.uuid),ao=ue.getInitialState({}),sa=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:ia,addIssueCommentAttachment:Ly,addIssueCommentAttachments:co,setIssueCommentAttachment:no,setIssueCommentAttachments:Ny,updateIssueCommentAttachment:Hy,updateIssueCommentAttachments:ro,deleteIssueCommentAttachment:uo,deleteIssueCommentAttachments:oo}=sa.actions,lo=t=>t.issueCommentAttachmentReducer.instances,ho=l.createSelector([lo],t=>Object.values(t)),mo=t=>e=>e.issueCommentAttachmentReducer.instances[t],Wy=S(l.createSelector([ho,(t,e)=>e],(t,e)=>g(t.filter(({issue_comment:s})=>e===s)))),po=sa.reducer,ve=F(t=>t.uuid),Ao=ve.getInitialState({}),aa=l.createSlice({name:"issueComments",initialState:Ao,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,Ao)),reducers:{addIssueComment:ve.addOne,addIssueComments:ve.addMany,setIssueComment:ve.setOne,setIssueComments:ve.setMany,deleteIssueComment:ve.deleteOne,deleteIssueComments:ve.deleteMany}}),{setIssueComments:yo,setIssueComment:ca,addIssueComment:na,addIssueComments:Ky,deleteIssueComment:ra,deleteIssueComments:Yy}=aa.actions,fo=t=>t.issueCommentReducer.instances,da=t=>e=>e.issueCommentReducer.instances[t],Jy=S(l.createSelector([fo,(t,e)=>e],(t,e)=>g(Object.values(t).filter(s=>s.issue===e)))),So=aa.reducer,we=F(t=>t.uuid),go=we.getInitialState({}),ua=l.createSlice({name:"issues",initialState:go,extraReducers:t=>t.addCase("RESET",e=>{Object.assign(e,go)}),reducers:{initializeIssues:we.initialize,addIssue:we.addOne,addIssues:we.addMany,updateIssue:we.updateOne,deleteIssue:we.deleteOne,deleteIssues:we.deleteMany}}),{initializeIssues:bo,addIssue:oa,addIssues:Po,updateIssue:wt,deleteIssue:la,deleteIssues:Fo}=ua.actions,To=t=>t.issueReducer.instances,ha=t=>e=>e.issueReducer.instances[t],Xy=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=ua.reducer,oe=F(t=>t.uuid),Ro=oe.getInitialState({}),ma=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:pa,addIssueTypeAttachment:Qy,addIssueTypeAttachments:Oo,setIssueTypeAttachment:_o,setIssueTypeAttachments:Zy,updateIssueTypeAttachment:xy,updateIssueTypeAttachments:vo,deleteIssueTypeAttachment:wo,deleteIssueTypeAttachments:Eo}=ma.actions,qo=t=>t.issueTypeAttachmentReducer.instances,jo=l.createSelector([qo],t=>Object.values(t)),Mo=t=>e=>e.issueTypeAttachmentReducer.instances[t],ef=S(l.createSelector([jo,(t,e)=>e],(t,e)=>g(t.filter(({issue_type:s})=>e===s)))),Vo=ma.reducer,le=F(t=>t.uuid),ko=le.getInitialState({}),Aa=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:tf,addIssueTypeFieldsAttachments:Co,setIssueTypeFieldsAttachment:sf,setIssueTypeFieldsAttachments:af,updateIssueTypeFieldsAttachment:cf,updateIssueTypeFieldsAttachments:Do,deleteIssueTypeFieldsAttachment:nf,deleteIssueTypeFieldsAttachments:Uo}=Aa.actions,$o=t=>t.issueTypeFieldsAttachmentReducer.instances,Bo=l.createSelector([$o],t=>Object.values(t)),rf=S(l.createSelector([Bo,(t,e)=>e],(t,e)=>g(t.filter(s=>s.fields_revision===e)))),df=t=>e=>e.issueTypeFieldsAttachmentReducer.instances[t],Go=Aa.reducer,he=F(t=>t.uuid),Lo=he.getInitialState({}),ya=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:fa,addIssueTypeFieldValuesMany:uf,setIssueTypeFieldValues:of,setIssueTypeFieldValuesMany:lf,updateIssueTypeFieldValues:it,updateIssueTypeFieldValuesMany:hf,deleteIssueTypeFieldValues:Sa,deleteIssueTypeFieldValuesMany:mf}=ya.actions,Ho=t=>t.issueTypeFieldValuesReducer.instances,ga=l.createSelector([Ho],t=>Object.values(t)),pf=S(l.createSelector([ga,(t,e)=>e],(t,e)=>g(t.filter(s=>s.issue===e)))),ba=t=>e=>e.issueTypeFieldValuesReducer.instances[t],Wo=ya.reducer,me=F(t=>t.uuid),Ko=me.getInitialState({}),Pa=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:Af,setIssueTypeFields:yf,setIssueTypeFieldsMany:ff,updateIssueTypeFields:Xo,updateIssueTypeFieldsMany:Sf,deleteIssueTypeFields:Qo,deleteIssueTypeFieldsMany:gf}=Pa.actions,Zo=t=>t.issueTypeFieldsReducer.instances,Et=l.createSelector([Zo],t=>Object.values(t)),bf=S(l.createSelector([Et,(t,e)=>e],(t,e)=>g(t.filter(s=>s.issue_type===e)))),Pf=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])),Ff=S(l.createSelector([Et,ga,(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)))})),Tf=t=>e=>e.issueTypeFieldsReducer.instances[t],xo=Pa.reducer,pe=F(t=>t.uuid),el=pe.getInitialState({}),Fa=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:If,addIssueTypeFieldValuesAttachments:qt,setIssueTypeFieldValuesAttachment:Rf,setIssueTypeFieldValuesAttachments:Of,updateIssueTypeFieldValuesAttachment:_f,updateIssueTypeFieldValuesAttachments:sl,deleteIssueTypeFieldValuesAttachment:vf,deleteIssueTypeFieldValuesAttachments:jt}=Fa.actions,Ta=t=>t.issueTypeFieldValuesAttachmentReducer.instances,il=l.createSelector([Ta],t=>Object.values(t)),wf=t=>e=>e.issueTypeFieldValuesAttachmentReducer.instances[t],al=S(l.createSelector([Ta,(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=Fa.reducer,Ce=F(t=>t.uuid),rl=Ce.getInitialState({}),Ia=l.createSlice({name:"issueTypes",initialState:rl,extraReducers:t=>t.addCase("RESET",e=>{Object.assign(e,rl)}),reducers:{initializeIssueTypes:Ce.initialize,setIssueType:Ce.setOne,addIssueType:Ce.addOne,updateIssueType:Ce.updateOne,removeIssueType:Ce.deleteOne}}),{initializeIssueTypes:dl,setIssueType:at,addIssueType:ul,updateIssueType:ol,removeIssueType:Ra}=Ia.actions,ll=t=>t.issueTypeReducer.instances,hl=l.createSelector(ll,t=>Object.values(t)),Oa=t=>e=>e.issueTypeReducer.instances[t],Ef=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},qf=S(l.createSelector([hl,(t,e)=>e],(t,e)=>g(t.filter(s=>s.organization===e)))),_a=S(l.createSelector([t=>t.issueReducer.instances,(t,e)=>e],(t,e)=>g(Object.values(t).filter(s=>s.issue_type===e)))),jf=t=>e=>_a(t)(e).length,ml=Ia.reducer,Ee=F(t=>t.uuid),pl=Ee.getInitialState({}),va=l.createSlice({name:"issueUpdates",initialState:pl,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,pl)),reducers:{initializeIssueUpdates:Ee.setMany,setIssueUpdate:Ee.setOne,addIssueUpdate:Ee.addOne,addIssueUpdates:Ee.addMany,deleteIssueUpdate:Ee.deleteOne,deleteIssueUpdates:Ee.deleteMany}}),{initializeIssueUpdates:Al,setIssueUpdate:Mf,addIssueUpdate:yl,addIssueUpdates:fl,deleteIssueUpdate:Sl,deleteIssueUpdates:gl}=va.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=va.reducer,Mt=F(t=>t.uuid),Tl=Mt.getInitialState({}),wa=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:Vf,updateLicense:be}=wa.actions,Vt=t=>t.licenseReducer.instances,kf=t=>e=>e.licenseReducer.instances[t],Rl=t=>e=>Object.values(e.licenseReducer.instances).find(s=>s.project===t),zf=l.createSelector([Vt],t=>g(Object.values(t).filter(e=>e.is_active))),Cf=l.createSelector([Vt],t=>Re(Object.values(t).filter(e=>e.project).reduce((e,s)=>({...e,[s.project]:s}),{}))),Ol=wa.reducer,V=F(t=>t.id),_l=V.getInitialState({currentUser:null}),Ea=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:Df,setUser:Uf,addUsers:$f,addUser:Bf,updateUsers:Gf,updateUser:Lf,deleteUser:Nf,deleteUsers:Hf,removeUser:wl,setCurrentUser:Wf,setProfilePicture:Kf}=Ea.actions,El=Ea.reducer,kt=t=>t.userReducer.currentUser,zt=t=>t.userReducer.instances,Yf=t=>e=>e.userReducer.instances[t],Jf=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({}),qa=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}=qa.actions,ja=t=>t.organizationAccessReducer.instances,Xf=t=>e=>e.organizationAccessReducer.instances[t],Qf=l.createSelector([kt,ja],(t,e)=>Object.values(e).find(a=>a.user===(t==null?void 0:t.id))??null),Zf=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 Re(e)},zl=qa.reducer,ct=F(t=>t.uuid),Cl=ct.getInitialState({}),Ma=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:Va,updateProjectAccess:Dl,deleteProjectAccess:Ul,deleteProjectAccesses:$l}=Ma.actions,ka=t=>t.projectAccessReducer.instances,Bl=l.createSelector(ka,t=>Object.values(t)),xf=t=>e=>e.projectAccessReducer.instances[t],eS=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 Re(e)},Ll=Ma.reducer,Ae=F(t=>t.uuid),Nl=Ae.getInitialState({}),za=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:tS,setProjects:Hl,setProject:sS,addProjects:iS,addProject:aS,updateProjects:cS,updateProject:Wl,deleteProject:Kl,deleteProjects:nS,acceptProjectInvite:Yl}=za.actions,Jl=za.reducer,Dt=t=>t.projectReducer.instances,rS=l.createSelector([Dt],t=>g(Object.values(t))),dS=t=>e=>e.projectReducer.instances[t],Xl=l.createSelector([ka],t=>Object.values(t).map(e=>e.user)),Ql=l.createSelector([Xl,zt],(t,e)=>t.reduce((s,a)=>({...s,[a]:e[a]}),{})),uS=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({}),Ca=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:oS,setOrganizations:xl,setOrganization:lS,addOrganizations:hS,addOrganization:mS,updateOrganizations:pS,updateOrganization:AS,deleteOrganization:yS,deleteOrganizations:fS}=Ca.actions,eh=t=>t.organizationReducer.instances,th=l.createSelector([eh],t=>Object.values(t)),SS=t=>e=>e.organizationReducer.instances[t],gS=l.createSelector([th],t=>g(Object.values(t).filter(e=>e.has_access))),sh=l.createSelector([ja],t=>Object.values(t).map(e=>e.user)),bS=S(l.createSelector([Dt,(t,e)=>e],(t,e)=>g(Object.values(t).filter(s=>s.organization_owner===e)))),PS=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)=>Re(t.reduce((s,a)=>({...s,[a]:e[a]}),{}))),FS=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=Ca.reducer,ch=(t,e,s)=>{const a=t.uuid?t:{...t,uuid:Ie.v4()};return{payload:a,type:"",meta:{offline:{effect:{timestamp:new Date().toISOString(),request:a,BASE_URL:e,serviceName:s}}}}},nh={deletedRequests:[],latestRetryTime:0},Da=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}}}),TS=t=>t.outboxReducer.deletedRequests,IS=t=>t.outboxReducer.latestRetryTime,{enqueueRequest:rh,markForDeletion:RS,markAsDeleted:dh,_setLatestRetryTime:uh}=Da.actions,oh=Da.reducer,fe=F(t=>t.uuid),lh=fe.getInitialState({}),Ua=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:OS,addProjectAttachments:mh,setProjectAttachment:ph,setProjectAttachments:Ah,updateProjectAttachment:_S,updateProjectAttachments:yh,deleteProjectAttachment:fh,deleteProjectAttachments:$a}=Ua.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=Ua.reducer,Se=F(t=>t.uuid),Th=Se.getInitialState({activeProjectFileId:null,isImportingProjectFile:!1}),Ba=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:vS,setProjectFiles:wS,addProjectFile:ES,addProjectFiles:Rh,updateProjectFile:Ga,updateProjectFiles:qS,deleteProjectFile:Oh,deleteProjectFiles:_h,setIsImportingProjectFile:vh,setActiveProjectFileId:wh,saveActiveProjectFileBounds:Eh,resetProjectFileObjectUrls:jS}=Ba.actions,qh=t=>t.projectFileReducer.instances,jh=l.createSelector([qh],t=>g(Object.values(t).sort((e,s)=>e.z_index-s.z_index))),MS=t=>e=>e.projectFileReducer.instances[t],VS=t=>t.projectFileReducer.activeProjectFileId,kS=t=>t.projectFileReducer.isImportingProjectFile,Mh=Ba.reducer,zS={isRehydrated:!1},La=l.createSlice({name:"rehydrated",initialState:zS,reducers:{setRehydrated:(t,e)=>{t.isRehydrated=e.payload}}}),{setRehydrated:CS}=La.actions,DS=t=>t.rehydratedReducer.isRehydrated,Vh=La.reducer,De=F(t=>t.uuid),kh=De.getInitialState({}),Na=l.createSlice({name:"teams",initialState:kh,extraReducers:t=>t.addCase("RESET",e=>Object.assign(e,kh)),reducers:{setTeam:De.setOne,initializeTeams:De.initialize,addTeam:De.addOne,updateTeam:De.updateOne,deleteTeam:De.deleteOne}}),{setTeam:Ue,initializeTeams:zh,addTeam:Ch,updateTeam:Ha,deleteTeam:Wa}=Na.actions,Ka=t=>t.teamReducer.instances,Ya=l.createSelector([Ka],t=>Object.values(t)),$e=t=>e=>e.teamReducer.instances[t],US=S(l.createSelector([Ka,(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)})),$S=S(l.createSelector([Ya,(t,e)=>e],(t,e)=>g(t.filter(s=>s.organization===e)))),BS=S(l.createSelector([Ya,(t,e)=>e],(t,e)=>g(t.filter(s=>s.members.includes(e))))),Dh=Na.reducer,GS={version:0},Uh=l.createSlice({name:"versioning",initialState:GS,reducers:{}}),$h=Uh.reducer,Ja={outboxReducer:oh,fileReducer:Qd,authReducer:fd},LS=l.combineReducers(Ja),Bh={...Ja,[Ne]:$h,categoryReducer:Fd,assetReducer:mr,assetAttachmentReducer:Mc,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:Ic,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:En,assetProcedureInstanceReducer:On,assetProcedureFieldsReducer:nn,assetProcedureFieldValuesReducer:bn,assetProcedureFieldsAttachmentReducer:Zc,assetProcedureFieldValuesAttachmentReducer:mn,assetProcedureAttachmentReducer:Nc,assetProcedureStepFieldsAttachmentReducer:Dn,assetProcedureStepFieldsReducer:Bn,assetProcedureStepFieldValuesAttachmentReducer:Yn,assetProcedureStepFieldValuesReducer:tr,assetProcedureStepReducer:cr},NS=l.combineReducers(Bh);let Gh;function HS(t){Gh=t}function nt(){return Gh}let Lh;function WS(t){Lh=t}function KS(){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({}),YS=t=>(t.outboxReducer&&(t.outboxReducer.deletedRequests=[]),t),JS=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,YS],XS=Object.fromEntries(Jh.map((t,e)=>[e,JS(t)]));let Xa=null;function qe(){const t=nt();if(!t)return console.warn("Client store not set; cannot get outbox coordinator yet."),null;if(Xa)return Xa;const e=t.getState().offline.outbox,s=Ge._fromOutbox(e);return Xa=s,s}const QS=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=qe();return a?(a.addRequest(e),a.getQueue()):(console.warn("Outbox coordinator not set; cannot enqueue request yet."),[])},Qh=(t,e,s)=>{const a=qe();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 ZS(t,e){if(!e.payload)throw new Error("Received empty payload");return rg(e)}const xS={...sc,effect:ZS,discard:Za,returnPromises:!0,persistCallback:QS,retry:ug,persistOptions:{storage:cm},queue:{...sc.queue,enqueue:Xh,dequeue:Qh,peek:(...t)=>dg(...t)}},eg=nm(XS,Ne),tg=l.compose(am.offline(xS),eg);function sg(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 Qa(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 R;if(e.store.getState().outboxReducer.deletedRequests.includes(t.payload.uuid))throw new Error("Request was marked for deletion");a&&t.payload.checkAuth!==!1&&await s.auth.prepareAuth();const n={queryParams:"",isAuthNeeded:!0},r=t.meta.offline.effect,{payload:u,headers:m,method:d,queryParams:o,attachmentHash:p,isExternalUrl:A,isAuthNeeded:y,isResponseBlob:b}={...n,...r.request},P=r.request;let T=P.url;const O=p?await e.files.fetchCache(p):void 0;if(p&&!O)throw new Error(`Cannot upload file ${p} because it's not cached.`);!A&&!T.startsWith("http")&&(!T.startsWith("/")&&!T.startsWith("blob:")&&(T="/"+T),T=t.meta.offline.effect.BASE_URL+T);const E=q=>{if(p){const ge=P.s3url;if(!ge)throw new Error(`No S3 URL for file ${p}`);if("warning"in ge)throw new Error(`S3 URL warning for file ${p}`);if(!O)throw new Error(`No file for file ${p}`);const rt=ge.fields["x-amz-checksum-sha1"];if(!rt)throw new Error(`No checksum for file ${p}`);return q.set("x-amz-checksum-sha1",rt).field({...u,...ge.fields}).attach("file",O)}return q.send(u)},Pb={[h.GET]:()=>b?Ve.get(T.toString()).responseType("blob"):Ve.get(T.toString()),[h.POST]:()=>{const q=Ve.post(T.toString());return E(q)},[h.PATCH]:()=>{const q=Ve.patch(T.toString());return E(q)},[h.PUT]:()=>{const q=Ve.put(T.toString());return E(q)},[h.DELETE]:()=>{const q=Ve.delete(T.toString());return E(q)}}[d];let Me=Pb();if(y&&a){const q=s.auth.getAuthHeader();Me=Me.set("Authorization",q)}m&&(Me=Me.set(m));try{return await Me.query(o)}catch(q){const ge=sg(q),rt=ge==null?void 0:ge.status;if(a&&rt===401)return await s.auth.handleUnauthorized(Me,ge),Me.query(o);throw new M({response:ge,innerError:q,discard:xh.includes(rt)})}}class ig{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 ig(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=KS();if(!a)throw new Error("Client SDK not set");return Qa(e,a)}}}class ag extends Zh{async run(e){return super.run(e)}}class cg extends Zh{async run(e){return super.run(e)}}const ng=new ag().then(new cg).compile();function rg(t){var e;return(e=ng[0])==null?void 0:e.run(t)}const xh=[400,409,403,404,405,500];function Za(t,e,s=0){var d;if(console.debug("Considering discarding request due to error:",t,`(${typeof t})`,`
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 a=nt(),n=a.getState().outboxReducer.deletedRequests,r=e.payload.uuid;function u(){a.dispatch(dh(r));const o=qe();if(!o)throw new Error("Outbox coordinator not set");o.remove(e.payload.uuid);const p=e.meta.offline.rollback;throw p&&(console.warn("Rolling back request due to SDK error:",e),a.dispatch(p)),t}if(t instanceof M&&t.options.discard)return console.debug("Discarding request due to explicit discard:",e),u();if(n.includes(r))return console.debug("Discarding request due to deletion:",e),u();if(t instanceof M){const o=t.status||((d=t.response)==null?void 0:d.status);if(o||console.warn("Error has no status code:",t),o!==void 0&&xh.includes(o)){console.warn("Discarding request due to error:",t,`
5
- Action:`,e);const p=qe();if(!p)throw new Error("Outbox coordinator not set");p.remove(e.payload.uuid),t.options.discard=!0,u()}}console.debug("Registering a retry for request:",e.payload.uuid);const m=qe();if(!m)throw new Error("Outbox coordinator not set");return m.registerRetry(e.payload.uuid),!1}function dg(t,e,s){var a;return(a=qe())==null?void 0:a.peek()}function ug(t,e){return nt().dispatch(uh(new Date().getTime())),uc}const Be="An unknown error occurred",og=500,em=["non_field_errors","detail"];function lg(t,e){let s;if(t!=null&&t.body)if(typeof t.body=="object"){const a=t.body;if(typeof a.error=="string")s=a.error;else if(typeof a.message=="string")s=a.message;else try{s=Object.entries(a).map(([c,n])=>typeof n=="string"?em.includes(c)?n:`${c}: ${n}`:Array.isArray(n)?em.includes(c)?n.join(`
6
- `):n.map(r=>`${c}: ${r}`).join(`
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>og?Be:s}class M extends Error{constructor(s){super(Be);f(this,"status");f(this,"response");f(this,"message");f(this,"options");const{response:a,innerError:c}=s;this.message=s.message??lg(a,c)??Be,this.status=(a==null?void 0:a.status)??0,this.response=a,s.discard=s.discard??!1,this.options=s}}class hg extends Hh{constructor(e){super(e)}}class R extends Hh{constructor(s,a){super(s);f(this,"auth");this.auth=a}}class mg extends R{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(Pc(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(Tc(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(Fc(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(bc(s))}}class w extends R{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 ke(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 Te 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 Te{constructor(){super(...arguments);f(this,"name","Asset Attachment");f(this,"url","/asset-attachments");f(this,"initializeAttachments",Zt);f(this,"addAttachments",xt);f(this,"updateAttachments",_c);f(this,"removeAttachments",es);f(this,"removeAttachment",vc);f(this,"setAttachment",Oc);f(this,"selectAttachment",qc)}buildOfflineAttachment(s){return I({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 Te{constructor(){super(...arguments);f(this,"name","Asset Procedure Attachment");f(this,"url","/asset-procedure-attachments");f(this,"addAttachments",zc);f(this,"updateAttachments",Dc);f(this,"removeAttachments",$c);f(this,"removeAttachment",Uc);f(this,"setAttachment",Cc);f(this,"selectAttachment",Lc)}buildOfflineAttachment(s){return I({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(kc(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=I({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(Kc(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(Yc(d.attachments))}).catch(()=>{this.dispatch(Jc(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(Wc(s))}}class fg extends R{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=I({...e,created_by:a,submitted_at:c});this.dispatch(tn(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(sn(m))}).catch(m=>{throw this.dispatch(an(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(en(s))}}function je(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=je(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:T}=y,O=await this.getFilePayload(T);O.sha1 in p||(p[O.sha1]=O);const E=I({file:URL.createObjectURL(T),file_type:T.type,file_name:T.name,file_sha1:O.sha1,created_by:c,field_values:b,submitted_at:a,field_identifier:P});r.push(E);const Le={uuid:E.uuid,file_name:T.name,file_sha1:O.sha1,file_extension:O.extension,field_identifier:P,field_values:b};A.push(Le)}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(un(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=ln(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(dn(s))}}class gg extends R{add(e){var r;const{store:s}=this.client,a=s.getState(),c=I({...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=je(e.payloads,s??e.payloads.length),r=[];for(const d of n){const o=[];for(const p of d){const A=I({...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(yn(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(fn(d.flat()))}).catch(()=>{this.dispatch(Sn(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=hn(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(An(s))}}class bg extends R{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=I({...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(Fn(s))}}class Pg extends R{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=I({...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=Rn(e)(a);return this.dispatch(bs(e)),this.dispatch(In(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(Tn(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(vn(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=I({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(Mn(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(Vn(d.attachments))}).catch(()=>{this.dispatch(kn(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(jn(s))}}class Tg extends R{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=I({...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($n(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=je(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:T}=y,O=await this.getFilePayload(T);O.sha1 in p||(p[O.sha1]=O);const E=I({file:URL.createObjectURL(T),file_type:T.type,file_name:T.name,file_sha1:O.sha1,created_by:c,field_values:b,submitted_at:a,field_identifier:P});r.push(E);const Le={uuid:E.uuid,file_name:T.name,file_sha1:O.sha1,file_extension:O.extension,field_identifier:P,field_values:b};A.push(Le)}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(Nn(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=Wn(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(Ln(s))}}class Rg extends R{add(e){var r;const{store:s}=this.client,a=s.getState(),c=I({...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=je(e.payloads,s??e.payloads.length),r=[];for(const d of n){const o=[];for(const p of d){const A=I({...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(Qn(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(Zn(d.flat()))}).catch(()=>{this.dispatch(xn(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=Kn(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(Xn(s))}}class Og extends R{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=>I(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=nr(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(ar(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(ir(s))}}class _g extends R{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=I({...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=Hs(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=Hs(e)(a);if(!c)throw new Error(`No asset with uuid ${e} found in the store`);const n=jc(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(Qi(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(Ji(u)),m})}bulkAdd(e,s,a,c){const n=new Date().toISOString(),r=Ie.v4(),u=je(e,c).map(o=>{const p=o.map(A=>I(A));return{batchId:Ie.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(O=>O.uuid),b=[s];d&&b.push(d);const P=y;P.push(p);const T=this.enqueueRequest({description:"Batch create assets",method:h.POST,url:"/assets/bulk/",payload:A,blockers:b,blocks:P});d=o.batchId,m.push(T)}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);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(ur(s))}}class vg extends R{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=I({...e,created_by:a,submitted_at:c});this.dispatch(Ks(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(Js(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(Js(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(Ks(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=>I(o)),r=n.map(o=>({...o,created_by:c,submitted_at:a})),u=r.map(({uuid:o})=>o);this.dispatch(Ys(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(Xs(u))}),[r,m]}bulkDelete(e){const{store:s}=this.client,a=br(e)(s.getState());this.dispatch(Xs(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(Ys(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 R{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=>I(d)),r=n.map(d=>({...d,asset_procedure:s,created_by:c,submitted_at:a}));this.dispatch(xs(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(ti(r.map(({uuid:d})=>d)))}),[r,u]}async bulkUpdate(e,s){const c=this.client.store.getState(),n=si(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=si(e)(s.getState());this.dispatch(ti(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(xs(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(ei(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(ei(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 Te{constructor(){super(...arguments);f(this,"name","Asset Type Attachment");f(this,"url","/asset-type-attachments");f(this,"addAttachments",ai);f(this,"updateAttachments",Er);f(this,"removeAttachments",ci);f(this,"removeAttachment",qr);f(this,"setAttachment",wr);f(this,"selectAttachment",Vr)}buildOfflineAttachment(s){return I({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=I({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 R{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=I({...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=je(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:T}=y,O=await this.getFilePayload(T);O.sha1 in p||(p[O.sha1]=O);const E=I({file:URL.createObjectURL(T),file_type:T.type,file_name:T.name,file_sha1:O.sha1,created_by:c,field_values:b,submitted_at:a,field_identifier:P});r.push(E);const Le={uuid:E.uuid,file_name:T.name,file_sha1:O.sha1,file_extension:O.extension,field_identifier:P,field_values:b};A.push(Le)}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 R{add(e){var r;const{store:s}=this.client,a=s.getState(),c=I({...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(li(c)),n.then(u=>(this.dispatch(Ze(u)),u)).catch(()=>{this.dispatch(hi(c.uuid))}),[c,n]}bulkAdd(e,s){var m;const a=new Date().toISOString(),c=[],n=je(e.payloads,s??e.payloads.length),r=[];for(const d of n){const o=[];for(const p of d){const A=I({...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=pi(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=pi(e)(a);if(!c)throw new Error(`Expected submission with uuid ${e} to exist`);const n=id(e)(a);this.dispatch(hi(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(li(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 R{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=I({...e,created_by:a,submitted_at:c});this.dispatch(yi(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(fi(n.uuid))}),[n,r]}update(e){const{store:s}=this.client,a=gi(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=gi(e)(a);if(!c)throw new Error(`Expected asset type with uuid ${e} to exist`);const n=Ns(e)(a),r=kr(e)(a);return this.dispatch(fi(e)),this.dispatch(or(n.map(u=>u.uuid))),this.dispatch(ci(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(yi(c)),this.dispatch(At(n)),this.dispatch(ai(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 R{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=I({...e,created_by:a,submitted_at:c});this.dispatch(Pi(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=Ti(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=Ti(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(Pi(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 Te{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 I({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 T=this.buildOfflineAttachment({file:b,file_sha1:P.sha1,submitted_at:n,created_by:c,description:"",modelUuid:y});r.push(T),u.push({uuid:T.uuid,file_name:T.file_name,file_sha1:T.file_sha1,file_extension:P.extension,description:T.description,document:y}),d[P.sha1].push(T.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,T]of Object.entries(b))T.then(()=>{const O=d[P];for(const E of O)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 R{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=I({...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(Oi([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(Fe([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(()=>{Fe([a])}),[c,n]}move(e,s,a){const{store:c}=this.client,n=ze(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(Fe(d))}).catch(()=>{this.dispatch(Fe(r))}),m}delete(e){const{store:s}=this.client,a=ze(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(Oi([e]));const r=this.enqueueRequest({description:"Delete Document",method:h.DELETE,url:`/documents/${e}/`,blockers:[e],blocks:[]});return r.then(u=>{this.dispatch(Fe(u))}).catch(()=>{this.dispatch(Fe([c])),n&&this.dispatch(Fe([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 R{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 R{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={},xa=new Set;let $t=0,ec=0,tc=0;const Bg=20;class Gg extends R{constructor(){super(...arguments);f(this,"host");f(this,"_dbPromise",rm.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 ke(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(xa.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),ec++),xa.add(a),tc++,tc%Bg===0&&console.debug(`File cache summary: ${$t} hits and ${ec} misses, ${$t/($t+ec)*100}% hit rate over ${tc} calls to addCache.`)}async removeCache(s){await(await this._dbPromise).delete("files",s),xa.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 pc(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 ke(d);if(o!==a){const y=`The hash of the file returned from the server (${o}) does not match the
9
- expected hash (${a}). This can happen if you're using a local development server and the
1
+ (function(i,L){typeof exports=="object"&&typeof module<"u"?L(exports,require("@redux-offline/redux-offline/lib/types"),require("@reduxjs/toolkit"),require("superagent"),require("uuid"),require("react"),require("file-saver"),require("fast-tree-builder"),require("ts-tree-lib"),require("@redux-offline/redux-offline"),require("@redux-offline/redux-offline/lib/defaults"),require("localforage"),require("redux-persist-migrate"),require("buffer"),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","react","file-saver","fast-tree-builder","ts-tree-lib","@redux-offline/redux-offline","@redux-offline/redux-offline/lib/defaults","localforage","redux-persist-migrate","buffer","@overmap-ai/forms","idb","jwt-decode","dependency-graph","@tiptap/core"],L):(i=typeof globalThis<"u"?globalThis:i||self,L(i["overmap-core"]={},null,i.toolkit,i.request,i.uuid,i.react,i.fileSaver,i.buildTree,i.tsTreeLib,i.reduxOffline,i.offlineConfig,i.localforage,i.createMigration,null,null,i.idb,i.jwtDecode,i.dependencyGraph))})(this,function(i,L,o,nt,Qe,mO,yO,Cn,At,pO,Ln,AO,fO,cb,db,SO,TO,IO){"use strict";var nb=Object.defineProperty;var ab=(i,L,o)=>L in i?nb(i,L,{enumerable:!0,configurable:!0,writable:!0,value:o}):i[L]=o;var y=(i,L,o)=>ab(i,typeof L!="symbol"?L+"":L,o);var oO;const kn=Object.freeze([]),Nn=Object.freeze({});var Gn=(t=>(t[t.GUEST=0]="GUEST",t[t.BASIC=2]="BASIC",t[t.ADMIN=4]="ADMIN",t))(Gn||{}),m=(t=>(t.GET="GET",t.POST="POST",t.PATCH="PATCH",t.PUT="PUT",t.DELETE="DELETE",t))(m||{}),Hn=(t=>(t[t.PLANNED=0]="PLANNED",t[t.ACTIVE=1]="ACTIVE",t[t.MAINTENANCE=2]="MAINTENANCE",t[t.INACTIVE=3]="INACTIVE",t[t.RETIRED=4]="RETIRED",t[t.DISPOSED=5]="DISPOSED",t))(Hn||{}),Wn=(t=>(t.Issue="issue",t.Asset="asset",t.AssetType="asset_type",t.Project="project",t.Document="document",t))(Wn||{}),Nt=(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))(Nt||{}),U=(t=>(t.STATUS="status",t.PRIORITY="priority",t.DESCRIPTION="description",t.TITLE="title",t.ASSIGNED_TO="assigned_to",t.DUE_DATE="due_date",t))(U||{}),Kn=(t=>(t[t.BACKLOG=0]="BACKLOG",t[t.PLANNED=1]="PLANNED",t[t.IN_PROGRESS=2]="IN_PROGRESS",t[t.COMPLETED=3]="COMPLETED",t[t.CANCELLED=4]="CANCELLED",t))(Kn||{});const OO=Nt.MEDIUM,Yn=6e4;function R(t){return{addOne:(h,p)=>{const A=t(p.payload);h.instances[A]=p.payload},addMany:(h,p)=>{for(const A of p.payload){const f=t(A);h.instances[f]=A}},setOne:(h,p)=>{const A=t(p.payload);h.instances[A]=p.payload},setMany:(h,p)=>{for(const A of p.payload){const f=t(A);h.instances[f]=A}},updateOne:(h,p)=>{const A=t(p.payload);h.instances[A]=p.payload},updateMany:(h,p)=>{for(const A of p.payload){const f=t(A);h.instances[f]=A}},deleteOne:(h,p)=>{delete h.instances[p.payload]},deleteMany:(h,p)=>{for(const A of p.payload)delete h.instances[A]},initialize:(h,p)=>{h.instances={};const A=new Set;for(const f of p.payload){const I=t(f);A.add(I),h.instances[I]=f}A.size!==p.payload.length&&console.warn("duplicate ids detected when initializing model instances.")}}}function PO(){return{initializeSelection:(u,d)=>{u.selection=Array.from(new Set(d.payload))},selectOne:(u,d)=>{new Set(u.selection).has(d.payload)||u.selection.push(d.payload)},selectMany:(u,d)=>{const h=new Set(u.selection);for(const p of d.payload)h.has(p)||h.add(p);u.selection=Array.from(h)},unselectOne:(u,d)=>{const h=new Set(u.selection);h.has(d.payload)&&(h.delete(d.payload),u.selection=Array.from(h))},unselectMany:(u,d)=>{const h=new Set(u.selection);for(const p of d.payload)h.has(p)&&h.delete(p);u.selection=Array.from(h)},toggleOne:(u,d)=>{const h=new Set(u.selection);h.has(d.payload)?h.delete(d.payload):h.add(d.payload),u.selection=Array.from(h)},toggleMany:(u,d)=>{const h=new Set(u.selection);for(const p of d.payload)h.has(p)?h.delete(p):h.add(p);u.selection=Array.from(h)},getInitialState:u=>({...u,selection:[]})}}const lt="versioning",_=o.createAction("RESET"),D=o.createAction("RESET_PROJECT_STATE"),w=o.createAction("RESET_ORGANIZATION_STATE");function FO(t,s){return mO.useMemo(t,s)}oO=Symbol.toStringTag;class Gt{constructor(){y(this,oO,"Promise");y(this,"_promise");y(this,"_resolve");y(this,"_reject");y(this,"_state","pending");this._resolve=null,this._reject=null,this._promise=new Promise((s,e)=>{this._resolve=s,this._reject=e})}get state(){return this._state}then(s,e){return this._promise.then(s,e)}catch(s){return this._promise.catch(s)}resolve(s){if(!this._resolve)throw new Error("No resolve callback");this._resolve(s),this._state="fulfilled"}reject(s){if(!this._reject)throw s;this._reject(s),this._state="rejected"}finally(s){throw new Error("`finally` not implemented")}}let Ht=!1;["true","1"].includes("".toLowerCase())&&(Ht=!0);function gO(t,s){if(t===s)return!0;if(typeof t!=typeof s)return!1;const e=Object.keys(t),n=Object.keys(s),a=e.length;if(a!==n.length)return!1;for(let c=0;c<a;c++){const r=e[c];if(!Object.prototype.hasOwnProperty.call(s,r)||t[r]!==s[r])return!1}return!0}function Wt(t){const s={};return function(){const e=Array.prototype.slice.call(arguments);return e in s?(Ht&&console.debug(`Memoization debug: Using memorized return value for ${t.toString()}(`,e,")"),s[e]):(Ht&&console.debug(`Memoization debug: Cache miss! Memoizing ${t.toString()}(`,e,")"),s[e]=t.apply(this,e))}}function bO(t,s){if(t.length!==s.length)return!1;for(let e=0;e<t.length;e++)if(t[e]!==s[e])return!1;return!0}const T=t=>t.length===0?kn:t,ft=t=>Object.keys(t).length===0?Nn:t,Zn=Wt(t=>{if(!t)return"";const s=new Date(t),e=s.getFullYear()===Kt.getFullYear(),n={day:"numeric",month:"short"};return e||(n.year="numeric"),s.toLocaleDateString([],n)}),_O=new Intl.RelativeTimeFormat([],{style:"long",numeric:"auto"}),MO=1e3*86400,Kt=new Date,RO=t=>new Date(t).toDateString()===Kt.toDateString(),wO=Wt((t,s,e)=>{const n=Math.round((new Date(t).getTime()-Kt.getTime())/MO);return n<s||n>e?Zn(t):_O.format(n,"days")});function EO(t){return new Uint8Array(t).reduce((e,n)=>e+n.toString(16).padStart(2,"0"),"")}const Yt=async(t,s)=>{s||(s=await at(t));let e=t.type;if(e.includes("/")&&(e=e.split("/")[1]),!e)throw new Error(`Could not extract file type from ${t.type}`);return`${s}.${e}`};function at(t){return new Promise((s,e)=>{const n=new FileReader;n.onload=()=>{const a=n.result;if(!a){e(new Error("FileReader did not return a valid ArrayBuffer."));return}crypto.subtle.digest("SHA-1",a).then(c=>{const r=EO(c);s(r)})},n.readAsArrayBuffer(t)})}function vO(t){if(!t.name||!t.type||!t.size){const s="File has no name, type, and/or size";throw new Error(s)}return`${t.name}&${t.type}${t.size}`}function Jn(t,s){return new File([t],s,{type:t.type})}function VO(t,s){const e=document.createElement("a");e.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(s)),e.setAttribute("download",t),e.style.display="none",document.body.appendChild(e),e.click(),document.body.removeChild(e)}const zO=async t=>{const s={};for(const e of t){const n=await at(e);s[n]={sha1:n,extension:e.name.split(".").pop()||"",file_type:e.type,size:e.size}}return Object.values(s)},Xn=async t=>(await fetch(t)).blob(),BO=t=>new Promise((s,e)=>{const n=new FileReader;n.onloadend=()=>{var a;s(((a=n.result)==null?void 0:a.toString())||"")},n.readAsDataURL(t)});function jO(t){const s=new Blob([t]);yO.saveAs(s,t.name)}const Qn={};function qO(t,s,e,...n){const a=Qn[t];let c=!1;a?a[s]||(a[s]=!0,c=!0):(Qn[t]={[s]:!0},c=!0),c&&console[e](...n)}const xn=["created_at","updated_at","index","revision"];function M(t){return{...t,uuid:Qe.v4()}}function DO(t){const s={};for(const e of t)s[e.uuid]=e;return s}function q(t){return t.map(({uuid:s})=>s)}function St(t,s){return t.localeCompare(s)}function Zt(t,s){return St(t.uuid,s.uuid)}function $O(t,s=void 0,e=255){let n=t.replace(/[^a-z0-9_\-.]/gi,"_").replace(/_{2,}/g,"_");if(!s){const c=t.split(".");c.length>1&&(s=c[c.length-1])}s&&!s.startsWith(".")&&(s="."+s);const a=s?s.length:0;return n.length+a>e&&(n=n.slice(0,e-a)+(s||"")),n}function UO(t){return t.toLowerCase().replace(" ","-")}function CO(t,s=!1){return t.normalize("NFKD").toLowerCase().replace(/[^\w\s-]/g,"").trim().replace(/[-\s]+/g,s?"_":"-")}function LO(t,s){if(t.length<=s)return t;const e=t.slice(0,s-1);return e.slice(0,e.lastIndexOf(" "))+"…"}const kO=/^.+@.+\..+$/;function z(t){const s={...t};for(const e of[...xn,"created_by"])e in s&&delete s[e];return s}const ea=t=>{const s=t.toSorted((e,n)=>e.order-n.order);return Cn(s,{id:e=>e.uuid,parentId:e=>e.parent,includeEmptyChildrenArray:!0,valueKey:!1})},NO=t=>{const{roots:s}=ea(t);return s.map(e=>new At.Tree(e))},ta=(t,s)=>{const{nodes:e}=ea(s),n=e.get(t);if(!n)throw new Error(`Node with uuid ${t} does not exist in asset procedure step tree.`);return new At.Tree(n)},sa=(t,s)=>t.type!==s.type?t.type-s.type:t.order-s.order,ia=(t,s)=>t.type!==s.type?t.type-s.type:t.order-s.order,na=t=>Cn(t,{id:s=>s.uuid,parentId:s=>s.parent_document,includeEmptyChildrenArray:!0,valueKey:!1}),GO=t=>{const{roots:s}=na(t);return s.map(e=>new At.Tree(e))},aa=(t,s)=>{const{nodes:e}=na(s),n=e.get(t);if(!n)throw new Error(`Node with uuid ${t} does not exist in document tree.`);return new At.Tree(n)};class HO{constructor(s){y(this,"operations",[]);y(this,"getData");this.getData=s}performOperations(s){let e=s;for(const n of this.operations)e=n(e);return e}filter(s,e){return this.operations.push(n=>n.filter(a=>a[s]===e)),this}exclude(s,e){return this.operations.push(n=>n.filter(a=>a[s]!==e)),this}orderBy(s){return this.operations.push(e=>[...e].sort((n,a)=>n[s]<=a[s]?1:-1)),this}reverse(){return this.operations.push(s=>[...s].reverse()),this}all(){return this.operations.push(s=>s),this}get(s,e){return o.createSelector([this.getData],n=>this.performOperations(n).find(a=>a[s]===e))}count(){return o.createSelector([this.getData],s=>this.performOperations(s).length)}first(){return o.createSelector([this.getData],s=>this.performOperations(s)[0])}last(){return o.createSelector([this.getData],s=>{const e=this.performOperations(s);return e[e.length-1]})}exists(){return o.createSelector([this.getData],s=>this.performOperations(s).length>0)}toSelector(){return o.createSelector([this.getData],s=>T(this.performOperations(s)))}}const S=t=>(...s)=>e=>t(e,...s),N=R(t=>t.uuid),ca={instances:{}},Jt=o.createSlice({name:"agents",initialState:ca,extraReducers:t=>t.addMatcher(o.isAnyOf(_,D,w),s=>Object.assign(s,ca)),reducers:{initializeConversations:N.initialize,addConversation:N.addOne,addConversations:N.addMany,setConversation:N.setOne,setConversations:N.setMany,updateConversation:N.updateOne,updateConversations:N.updateMany,deleteConversation:N.deleteOne,deleteConversations:N.deleteMany}}),{initializeConversations:da,addConversation:ra,addConversations:WO,setConversation:ua,setConversations:KO,updateConversation:la,updateConversations:YO,deleteConversation:ZO,deleteConversations:JO}=Jt.actions,Xt=t=>t.agentsReducer.instances,XO=o.createSelector([Xt],t=>Object.values(t)),QO=S(o.createSelector([Xt,(t,s)=>s],(t,s)=>t[s])),oa=Jt.reducer,G=R(t=>t.uuid),ha={instances:{}},Qt=o.createSlice({name:"assetAttachments",initialState:ha,extraReducers:t=>t.addMatcher(o.isAnyOf(_,D,w),s=>Object.assign(s,ha)),reducers:{initializeAssetAttachments:G.initialize,addAssetAttachment:G.addOne,addAssetAttachments:G.addMany,setAssetAttachment:G.setOne,setAssetAttachments:G.setMany,updateAssetAttachment:G.updateOne,updateAssetAttachments:G.updateMany,deleteAssetAttachment:G.deleteOne,deleteAssetAttachments:G.deleteMany}}),{initializeAssetAttachments:ma,addAssetAttachment:ya,addAssetAttachments:xt,setAssetAttachment:pa,setAssetAttachments:Aa,updateAssetAttachment:fa,updateAssetAttachments:Sa,deleteAssetAttachment:Ta,deleteAssetAttachments:es}=Qt.actions,Ia=t=>t.assetAttachmentReducer.instances,ts=o.createSelector([Ia],t=>Object.values(t)),Oa=t=>s=>s.assetAttachmentReducer.instances[t],Pa=S(o.createSelector([ts,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),Fa=S(o.createSelector([ts,(t,s)=>s],(t,s)=>T(t.filter(({asset:e})=>s===e)))),ga=Qt.reducer,H=R(({uuid:t})=>t),ba={instances:{}},ss=o.createSlice({name:"assetProcedureTypeAttachments",initialState:ba,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,ba)),reducers:{initializeAssetProcedureTypeAttachments:H.initialize,addAssetProcedureTypeAttachment:H.addOne,addAssetProcedureTypeAttachments:H.addMany,setAssetProcedureTypeAttachment:H.setOne,setAssetProcedureTypeAttachments:H.setMany,updateAssetProcedureTypeAttachment:H.updateOne,updateAssetProcedureTypeAttachments:H.updateMany,deleteAssetProcedureTypeAttachment:H.deleteOne,deleteAssetProcedureTypeAttachments:H.deleteMany}}),{initializeAssetProcedureTypeAttachments:_a,addAssetProcedureTypeAttachment:Ma,addAssetProcedureTypeAttachments:Ra,setAssetProcedureTypeAttachment:wa,setAssetProcedureTypeAttachments:Ea,updateAssetProcedureTypeAttachment:va,updateAssetProcedureTypeAttachments:Va,deleteAssetProcedureTypeAttachment:za,deleteAssetProcedureTypeAttachments:Ba}=ss.actions,ja=ss.reducer,qa=t=>t.assetProcedureTypeAttachmentReducer.instances,is=o.createSelector([qa],t=>Object.values(t)),Da=t=>s=>s.assetProcedureTypeAttachmentReducer.instances[t],$a=S(o.createSelector([is,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),xO=S(o.createSelector([is,(t,s)=>s],(t,s)=>T(t.filter(({asset_procedure_type:e})=>s===e)))),W=R(({uuid:t})=>t),Ua={instances:{}},ns=o.createSlice({name:"assetProcedureTypeFieldsAttachments",initialState:Ua,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,Ua)),reducers:{initializeAssetProcedureTypeFieldsAttachments:W.initialize,addAssetProcedureTypeFieldsAttachment:W.addOne,addAssetProcedureTypeFieldsAttachments:W.addMany,setAssetProcedureTypeFieldsAttachment:W.setOne,setAssetProcedureTypeFieldsAttachments:W.setMany,updateAssetProcedureTypeFieldsAttachment:W.updateOne,updateAssetProcedureTypeFieldsAttachments:W.updateMany,deleteAssetProcedureTypeFieldsAttachment:W.deleteOne,deleteAssetProcedureTypeFieldsAttachments:W.deleteMany}}),{initializeAssetProcedureTypeFieldsAttachments:Ca,addAssetProcedureTypeFieldsAttachment:La,addAssetProcedureTypeFieldsAttachments:ka,setAssetProcedureTypeFieldsAttachment:Na,setAssetProcedureTypeFieldsAttachments:Ga,updateAssetProcedureTypeFieldsAttachment:Ha,updateAssetProcedureTypeFieldsAttachments:Wa,deleteAssetProcedureTypeFieldsAttachment:Ka,deleteAssetProcedureTypeFieldsAttachments:Ya}=ns.actions,Za=ns.reducer,Ja=t=>t.assetProcedureTypeFieldsAttachmentReducer.instances,as=o.createSelector([Ja],t=>Object.values(t)),eP=S(o.createSelector([as,(t,s)=>s],(t,s)=>T(t.filter(e=>e.fields_revision===s)))),Xa=t=>s=>s.assetProcedureTypeFieldsAttachmentReducer.instances[t],Qa=S(o.createSelector([as,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),K=R(({uuid:t})=>t),xa={instances:{}},cs=o.createSlice({name:"assetProcedureTypeFields",initialState:xa,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,xa)),reducers:{initializeAssetProcedureTypeFields:K.initialize,addAssetProcedureTypeFields:K.addOne,addAssetProcedureTypeFieldsMany:K.addMany,setAssetProcedureTypeFields:K.setOne,setAssetProcedureTypeFieldsMany:K.setMany,updateAssetProcedureTypeFields:K.updateOne,updateAssetProcedureTypeFieldsMany:K.updateMany,deleteAssetProcedureTypeFields:K.deleteOne,deleteAssetProcedureTypeFieldsMany:K.deleteMany}}),{initializeAssetProcedureTypeFields:ec,addAssetProcedureTypeFields:tc,addAssetProcedureTypeFieldsMany:sc,setAssetProcedureTypeFields:ic,setAssetProcedureTypeFieldsMany:nc,updateAssetProcedureTypeFields:ac,updateAssetProcedureTypeFieldsMany:cc,deleteAssetProcedureTypeFields:dc,deleteAssetProcedureTypeFieldsMany:rc}=cs.actions,uc=cs.reducer,lc=t=>t.assetProcedureTypeFieldsReducer.instances,Tt=o.createSelector([lc],t=>Object.values(t)),tP=S(o.createSelector([Tt,(t,s)=>s],(t,s)=>T(t.filter(e=>e.asset_procedure_type===s)))),sP=S(o.createSelector([Tt,(t,s)=>s],(t,s)=>t.filter(e=>e.asset_procedure_type===s).sort((e,n)=>e.submitted_at>n.submitted_at?-1:1)[0])),oc=t=>s=>s.assetProcedureTypeFieldsReducer.instances[t],hc=S(o.createSelector([Tt,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),Y=R(({uuid:t})=>t),mc={instances:{}},ds=o.createSlice({name:"assetProcedureTypeFieldValuesAttachments",initialState:mc,extraReducers:t=>t.addMatcher(o.isAnyOf(_,D,w),s=>Object.assign(s,mc)),reducers:{initializeAssetProcedureTypeFieldValuesAttachments:Y.initialize,addAssetProcedureTypeFieldValuesAttachment:Y.addOne,addAssetProcedureTypeFieldValuesAttachments:Y.addMany,setAssetProcedureTypeFieldValuesAttachment:Y.setOne,setAssetProcedureTypeFieldValuesAttachments:Y.setMany,updateAssetProcedureTypeFieldValuesAttachment:Y.updateOne,updateAssetProcedureTypeFieldValuesAttachments:Y.updateMany,deleteAssetProcedureTypeFieldValuesAttachment:Y.deleteOne,deleteAssetProcedureTypeFieldValuesAttachments:Y.deleteMany}}),{initializeAssetProcedureTypeFieldValuesAttachments:yc,addAssetProcedureTypeFieldValuesAttachment:pc,addAssetProcedureTypeFieldValuesAttachments:rs,setAssetProcedureTypeFieldValuesAttachment:Ac,setAssetProcedureTypeFieldValuesAttachments:fc,updateAssetProcedureTypeFieldValuesAttachment:Sc,updateAssetProcedureTypeFieldValuesAttachments:Tc,deleteAssetProcedureTypeFieldValuesAttachment:Ic,deleteAssetProcedureTypeFieldValuesAttachments:us}=ds.actions,Oc=ds.reducer,Pc=t=>t.assetProcedureTypeFieldValuesAttachmentReducer.instances,ls=o.createSelector([Pc],t=>Object.values(t)),Fc=t=>s=>s.assetProcedureTypeFieldValuesAttachmentReducer.instances[t],gc=S(o.createSelector([ls,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),bc=S(o.createSelector([ls,(t,s)=>s],(t,s)=>T(t.filter(e=>e.field_values===s)))),Z=R(({uuid:t})=>t),_c={instances:{}},os=o.createSlice({name:"assetProcedureTypeFieldValues",initialState:_c,extraReducers:t=>t.addMatcher(o.isAnyOf(_,D,w),s=>Object.assign(s,_c)),reducers:{initializeAssetProcedureTypeFieldValues:Z.initialize,addAssetProcedureTypeFieldValues:Z.addOne,addAssetProcedureTypeFieldValuesMany:Z.addMany,setAssetProcedureTypeFieldValues:Z.setOne,setAssetProcedureTypeFieldValuesMany:Z.setMany,updateAssetProcedureTypeFieldValues:Z.updateOne,updateAssetProcedureTypeFieldValuesMany:Z.updateMany,deleteAssetProcedureTypeFieldValues:Z.deleteOne,deleteAssetProcedureTypeFieldValuesMany:Z.deleteMany}}),{initializeAssetProcedureTypeFieldValues:Mc,addAssetProcedureTypeFieldValues:Rc,addAssetProcedureTypeFieldValuesMany:wc,setAssetProcedureTypeFieldValues:Ec,setAssetProcedureTypeFieldValuesMany:vc,updateAssetProcedureTypeFieldValues:Vc,updateAssetProcedureTypeFieldValuesMany:zc,deleteAssetProcedureTypeFieldValues:Bc,deleteAssetProcedureTypeFieldValuesMany:jc}=os.actions,qc=os.reducer,Dc=t=>t.assetProcedureTypeFieldValuesReducer.instances,It=o.createSelector([Dc],t=>Object.values(t)),iP=S(o.createSelector([It,(t,s)=>s],(t,s)=>T(t.filter(e=>e.asset===s)))),nP=S(o.createSelector([It,(t,s)=>s],(t,s)=>T(t.filter(e=>e.asset_procedure===s)))),$c=t=>s=>s.assetProcedureTypeFieldValuesReducer.instances[t],Uc=S(o.createSelector([It,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),J=R(({uuid:t})=>t),Cc={instances:{}},hs=o.createSlice({name:"assetProcedures",initialState:Cc,extraReducers:t=>t.addMatcher(o.isAnyOf(_,D,w),s=>Object.assign(s,Cc)),reducers:{initializeAssetProcedures:J.initialize,addAssetProcedure:J.addOne,addAssetProcedures:J.addMany,setAssetProcedure:J.setOne,setAssetProcedures:J.setMany,updateAssetProcedure:J.updateOne,updateAssetProcedures:J.updateMany,deleteAssetProcedure:J.deleteOne,deleteAssetProcedures:J.deleteMany}}),{initializeAssetProcedures:Lc,addAssetProcedure:kc,addAssetProcedures:ms,updateAssetProcedure:Nc,updateAssetProcedures:Gc,deleteAssetProcedure:Hc,deleteAssetProcedures:ys,setAssetProcedure:Wc,setAssetProcedures:Kc}=hs.actions,Yc=hs.reducer,Zc=t=>t.assetProcedureReducer.instances,Ot=o.createSelector([Zc],t=>Object.values(t)),Jc=S(o.createSelector([Ot,(t,s)=>s],(t,s)=>T(t.filter(e=>e.asset_procedure_type===s)))),aP=S(o.createSelector([Ot,(t,s)=>s],(t,s)=>T(t.filter(e=>e.asset_type===s)))),Xc=t=>s=>s.assetProcedureReducer.instances[t],Qc=S(o.createSelector([Ot,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),X=R(t=>t.uuid),xc={instances:{}},ps=o.createSlice({name:"assetProcedureTypes",initialState:xc,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,xc)),reducers:{initializeAssetProcedureTypes:X.initialize,addAssetProcedureType:X.addOne,addAssetProcedureTypes:X.addMany,setAssetProcedureType:X.setOne,setAssetProcedureTypes:X.setMany,updateAssetProcedureType:X.updateOne,updateAssetProcedureTypes:X.updateMany,deleteAssetProcedureType:X.deleteOne,deleteAssetProcedureTypes:X.deleteMany}}),{initializeAssetProcedureTypes:ed,addAssetProcedureType:td,addAssetProcedureTypes:sd,updateAssetProcedureType:id,updateAssetProcedureTypes:nd,deleteAssetProcedureType:ad,deleteAssetProcedureTypes:cd,setAssetProcedureType:dd,setAssetProcedureTypes:rd}=ps.actions,ud=ps.reducer,ld=t=>t.assetProcedureTypeReducer.instances,As=o.createSelector([ld],t=>Object.values(t)),od=t=>s=>s.assetProcedureTypeReducer.instances[t],hd=S(o.createSelector([As,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),cP=S(o.createSelector([As,(t,s)=>s],(t,s)=>T(t.filter(e=>e.organization===s)))),Q=R(t=>t.uuid),md={instances:{}},fs=o.createSlice({name:"assetProcedureStepFieldsAttachments",initialState:md,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,md)),reducers:{initializeAssetProcedureStepFieldsAttachments:Q.initialize,addAssetProcedureStepFieldsAttachment:Q.addOne,addAssetProcedureStepFieldsAttachments:Q.addMany,setAssetProcedureStepFieldsAttachment:Q.setOne,setAssetProcedureStepFieldsAttachments:Q.setMany,updateAssetProcedureStepFieldsAttachment:Q.updateOne,updateAssetProcedureStepFieldsAttachments:Q.updateMany,deleteAssetProcedureStepFieldsAttachment:Q.deleteOne,deleteAssetProcedureStepFieldsAttachments:Q.deleteMany}}),{initializeAssetProcedureStepFieldsAttachments:yd,addAssetProcedureStepFieldsAttachment:pd,addAssetProcedureStepFieldsAttachments:Ad,setAssetProcedureStepFieldsAttachment:fd,setAssetProcedureStepFieldsAttachments:Sd,updateAssetProcedureStepFieldsAttachment:Td,updateAssetProcedureStepFieldsAttachments:Id,deleteAssetProcedureStepFieldsAttachment:Od,deleteAssetProcedureStepFieldsAttachments:Pd}=fs.actions,Fd=t=>t.assetProcedureStepFieldsAttachmentReducer.instances,Ss=o.createSelector([Fd],t=>Object.values(t)),dP=S(o.createSelector([Ss,(t,s)=>s],(t,s)=>T(t.filter(e=>e.fields_revision===s)))),gd=t=>s=>s.assetProcedureStepFieldsAttachmentReducer.instances[t],bd=S(o.createSelector([Ss,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),_d=fs.reducer,x=R(t=>t.uuid),Md={instances:{}},Ts=o.createSlice({name:"assetProcedureStepFields",initialState:Md,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,Md)),reducers:{initializeAssetProcedureStepFields:x.initialize,addAssetProcedureStepFields:x.addOne,addAssetProcedureStepFieldsMany:x.addMany,setAssetProcedureStepFields:x.setOne,setAssetProcedureStepFieldsMany:x.setMany,updateAssetProcedureStepFields:x.updateOne,updateAssetProcedureStepFieldsMany:x.updateMany,deleteAssetProcedureStepFields:x.deleteOne,deleteAssetProcedureStepFieldsMany:x.deleteMany}}),{initializeAssetProcedureStepFields:Rd,addAssetProcedureStepFields:wd,addAssetProcedureStepFieldsMany:Ed,setAssetProcedureStepFields:vd,setAssetProcedureStepFieldsMany:Vd,updateAssetProcedureStepFields:zd,updateAssetProcedureStepFieldsMany:Bd,deleteAssetProcedureStepFields:jd,deleteAssetProcedureStepFieldsMany:qd}=Ts.actions,Is=t=>t.assetProcedureStepFieldsReducer.instances,Pt=o.createSelector([Is],t=>Object.values(t)),rP=S(o.createSelector([Pt,(t,s)=>s],(t,s)=>T(t.filter(e=>e.asset_procedure_step===s)))),uP=S(o.createSelector([Pt,(t,s)=>s],(t,s)=>t.filter(e=>e.asset_procedure_step===s).sort((e,n)=>e.submitted_at>n.submitted_at?-1:1)[0])),lP=o.createSelector([Is],t=>{const s={};for(const e of Object.values(t)){const n=s[e.asset_procedure_step];(!n||n.submitted_at<e.submitted_at)&&(s[e.asset_procedure_step]=e)}return s}),Dd=t=>s=>s.assetProcedureStepFieldsReducer.instances[t],$d=S(o.createSelector([Pt,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),Ud=Ts.reducer,ee=R(t=>t.uuid),Cd={instances:{}},Os=o.createSlice({name:"assetProcedureStepFieldValuesAttachments",initialState:Cd,extraReducers:t=>t.addMatcher(o.isAnyOf(_,D,w),s=>Object.assign(s,Cd)),reducers:{initializeAssetProcedureStepFieldValuesAttachments:ee.initialize,addAssetProcedureStepFieldValuesAttachment:ee.addOne,addAssetProcedureStepFieldValuesAttachments:ee.addMany,setAssetProcedureStepFieldValuesAttachment:ee.setOne,setAssetProcedureStepFieldValuesAttachments:ee.setMany,updateAssetProcedureStepFieldValuesAttachment:ee.updateOne,updateAssetProcedureStepFieldValuesAttachments:ee.updateMany,deleteAssetProcedureStepFieldValuesAttachment:ee.deleteOne,deleteAssetProcedureStepFieldValuesAttachments:ee.deleteMany}}),{initializeAssetProcedureStepFieldValuesAttachments:Ld,addAssetProcedureStepFieldValuesAttachment:kd,addAssetProcedureStepFieldValuesAttachments:Ps,setAssetProcedureStepFieldValuesAttachment:Nd,setAssetProcedureStepFieldValuesAttachments:Gd,updateAssetProcedureStepFieldValuesAttachment:Hd,updateAssetProcedureStepFieldValuesAttachments:Wd,deleteAssetProcedureStepFieldValuesAttachment:Kd,deleteAssetProcedureStepFieldValuesAttachments:Fs}=Os.actions,Yd=t=>t.assetProcedureStepFieldValuesAttachmentReducer.instances,gs=o.createSelector([Yd],t=>Object.values(t)),Zd=t=>s=>s.assetProcedureStepFieldValuesAttachmentReducer.instances[t],Jd=S(o.createSelector([gs,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),Xd=S(o.createSelector([gs,(t,s)=>s],(t,s)=>T(t.filter(e=>e.field_values===s)))),Qd=Os.reducer,te=R(t=>t.uuid),xd={instances:{}},bs=o.createSlice({name:"assetProcedureStepFieldValues",initialState:xd,extraReducers:t=>t.addMatcher(o.isAnyOf(_,D,w),s=>Object.assign(s,xd)),reducers:{initializeAssetProcedureStepFieldValues:te.initialize,addAssetProcedureStepFieldValues:te.addOne,addAssetProcedureStepFieldValuesMany:te.addMany,setAssetProcedureStepFieldValues:te.setOne,setAssetProcedureStepFieldValuesMany:te.setMany,updateAssetProcedureStepFieldValues:te.updateOne,updateAssetProcedureStepFieldValuesMany:te.updateMany,deleteAssetProcedureStepFieldValues:te.deleteOne,deleteAssetProcedureStepFieldValuesMany:te.deleteMany}}),{initializeAssetProcedureStepFieldValues:er,addAssetProcedureStepFieldValues:tr,addAssetProcedureStepFieldValuesMany:sr,setAssetProcedureStepFieldValues:ir,setAssetProcedureStepFieldValuesMany:nr,updateAssetProcedureStepFieldValues:ar,updateAssetProcedureStepFieldValuesMany:cr,deleteAssetProcedureStepFieldValues:dr,deleteAssetProcedureStepFieldValuesMany:rr}=bs.actions,ur=t=>t.assetProcedureStepFieldValuesReducer.instances,ot=o.createSelector([ur],t=>Object.values(t)),oP=S(o.createSelector([ot,(t,s)=>s],(t,s)=>T(t.filter(e=>e.asset===s)))),hP=S(o.createSelector([ot,(t,s)=>s],(t,s)=>T(t.filter(e=>e.asset_procedure===s)))),mP=S(o.createSelector([ot,(t,s)=>s],(t,s)=>T(t.filter(e=>e.asset_procedure_step===s)))),lr=t=>s=>s.assetProcedureStepFieldValuesReducer.instances[t],or=S(o.createSelector([ot,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),hr=bs.reducer,se=R(t=>t.uuid),mr={instances:{}},_s=o.createSlice({name:"assetProcedureSteps",initialState:mr,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,mr)),reducers:{initializeAssetProcedureSteps:se.initialize,setAssetProcedureStep:se.setOne,setAssetProcedureSteps:se.setMany,addAssetProcedureStep:se.addOne,addAssetProcedureSteps:se.addMany,updateAssetProcedureStep:se.updateOne,updateAssetProcedureSteps:se.updateMany,deleteAssetProcedureStep:se.deleteOne,deleteAssetProcedureSteps:se.deleteMany}}),{initializeAssetProcedureSteps:yr,setAssetProcedureStep:pr,setAssetProcedureSteps:Ar,addAssetProcedureStep:fr,addAssetProcedureSteps:Sr,updateAssetProcedureStep:Tr,updateAssetProcedureSteps:Ir,deleteAssetProcedureStep:Or,deleteAssetProcedureSteps:Pr}=_s.actions,Fr=_s.reducer,Ft=t=>t.assetProcedureStepReducer.instances,gr=t=>s=>s.assetProcedureStepReducer.instances[t],Ms=o.createSelector([Ft],t=>Object.values(t)),yP=S(o.createSelector([Ft,(t,s)=>s],(t,s)=>{const e={};for(const[n,a]of Object.entries(t))a.asset_procedure_type===s&&(e[n]=a);return ft(e)})),pP=S(o.createSelector([Ms,(t,s)=>s],(t,s)=>T(t.filter(e=>e.asset_procedure_type===s)))),br=S(o.createSelector([Ms,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),_r=S(o.createSelector([Ft,(t,s)=>s],(t,s)=>{if(!t[s])return T([]);const a=ta(s,Object.values(t)).all().map(({model:c})=>c);return T(a)})),ie=R(t=>t.uuid),Mr={instances:{}},Rs=o.createSlice({name:"assets",initialState:Mr,extraReducers:t=>t.addMatcher(o.isAnyOf(_,D,w),s=>Object.assign(s,Mr)),reducers:{initializeAssets:ie.initialize,addAsset:ie.addOne,addAssets:ie.addMany,setAsset:ie.setOne,setAssets:ie.setMany,updateAsset:ie.updateOne,updateAssets:ie.updateMany,deleteAsset:ie.deleteOne,deleteAssets:ie.deleteMany}}),{initializeAssets:Rr,addAsset:wr,addAssets:ws,updateAsset:Er,updateAssets:vr,deleteAsset:Vr,deleteAssets:Es,setAsset:zr,setAssets:Br}=Rs.actions,jr=t=>t.assetReducer.instances,gt=o.createSelector([jr],t=>T(Object.values(t))),AP=S(o.createSelector([gt,(t,s)=>s],(t,s)=>T(t.filter(({project:e})=>e===s)))),qr=S(o.createSelector([gt,(t,s)=>s],(t,s)=>T(t.filter(e=>e.asset_type===s)))),Dr=t=>s=>s.assetReducer.instances[t],$r=S(o.createSelector([gt,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),Ur=Rs.reducer,ne=R(t=>t.uuid),Cr={instances:{}},vs=o.createSlice({name:"assetStageCompletions",initialState:Cr,extraReducers:t=>t.addMatcher(o.isAnyOf(_,D,w),s=>Object.assign(s,Cr)),reducers:{initializeAssetStageCompletions:ne.initialize,addAssetStageCompletion:ne.addOne,addAssetStageCompletions:ne.addMany,setAssetStageCompletion:ne.setOne,setAssetStageCompletions:ne.setMany,updateAssetStageCompletion:ne.updateOne,updateAssetStageCompletions:ne.updateMany,deleteAssetStageCompletion:ne.deleteOne,deleteAssetStageCompletions:ne.deleteMany}}),{initializeAssetStageCompletions:Lr,addAssetStageCompletion:kr,addAssetStageCompletions:Nr,setAssetStageCompletion:Gr,setAssetStageCompletions:Hr,updateAssetStageCompletion:Wr,updateAssetStageCompletions:Kr,deleteAssetStageCompletion:Yr,deleteAssetStageCompletions:Zr}=vs.actions,Jr=vs.reducer,Xr=t=>t.assetStageCompletionReducer.instances,Qr=o.createSelector([Xr],t=>Object.values(t)),xr=t=>s=>s.assetStageCompletionReducer.instances[t],eu=S(o.createSelector([Qr,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),ae=R(t=>t.uuid),tu={instances:{}},Vs=o.createSlice({name:"assetStages",initialState:tu,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,tu)),reducers:{initializeAssetStages:ae.initialize,setAssetStage:ae.setOne,setAssetStages:ae.setMany,addAssetStage:ae.addOne,addAssetStages:ae.addMany,updateAssetStage:ae.updateOne,updateAssetStages:ae.updateMany,deleteAssetStage:ae.deleteOne,deleteAssetStages:ae.deleteMany}}),{initializeAssetStages:su,setAssetStage:iu,setAssetStages:nu,addAssetStage:au,addAssetStages:cu,updateAssetStage:du,updateAssetStages:ru,deleteAssetStage:uu,deleteAssetStages:lu}=Vs.actions,ou=Vs.reducer,zs=t=>t.assetStageReducer.instances,hu=t=>s=>s.assetStageReducer.instances[t],Bs=o.createSelector([zs],t=>Object.values(t)),fP=S(o.createSelector([zs,(t,s)=>s],(t,s)=>{const e={};for(const[n,a]of Object.entries(t))a.asset_procedure_type===s&&(e[n]=a);return ft(e)})),SP=S(o.createSelector([Bs,(t,s)=>s],(t,s)=>T(t.filter(e=>e.asset_procedure_type===s)))),mu=S(o.createSelector([Bs,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),ce=R(t=>t.uuid),yu={instances:{}},js=o.createSlice({name:"assetTypeAttachments",initialState:yu,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,yu)),reducers:{initializeAssetTypeAttachments:ce.initialize,addAssetTypeAttachment:ce.addOne,addAssetTypeAttachments:ce.addMany,setAssetTypeAttachment:ce.setOne,setAssetTypeAttachments:ce.setMany,updateAssetTypeAttachment:ce.updateOne,updateAssetTypeAttachments:ce.updateMany,deleteAssetTypeAttachment:ce.deleteOne,deleteAssetTypeAttachments:ce.deleteMany}}),{initializeAssetTypeAttachments:pu,addAssetTypeAttachment:Au,addAssetTypeAttachments:qs,setAssetTypeAttachment:fu,setAssetTypeAttachments:Su,updateAssetTypeAttachment:Tu,updateAssetTypeAttachments:Iu,deleteAssetTypeAttachment:Ou,deleteAssetTypeAttachments:Ds}=js.actions,Pu=t=>t.assetTypeAttachmentReducer.instances,$s=o.createSelector([Pu],t=>Object.values(t)),Fu=t=>s=>s.assetTypeAttachmentReducer.instances[t],gu=S(o.createSelector([$s,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),bu=S(o.createSelector([$s,(t,s)=>s],(t,s)=>T(t.filter(({asset_type:e})=>s===e)))),_u=js.reducer,de=R(t=>t.uuid),Mu={instances:{}},Us=o.createSlice({name:"assetTypeFieldsAttachments",initialState:Mu,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,Mu)),reducers:{initializeAssetTypeFieldsAttachments:de.initialize,addAssetTypeFieldsAttachment:de.addOne,addAssetTypeFieldsAttachments:de.addMany,setAssetTypeFieldsAttachment:de.setOne,setAssetTypeFieldsAttachments:de.setMany,updateAssetTypeFieldsAttachment:de.updateOne,updateAssetTypeFieldsAttachments:de.updateMany,deleteAssetTypeFieldsAttachment:de.deleteOne,deleteAssetTypeFieldsAttachments:de.deleteMany}}),{initializeAssetTypeFieldsAttachments:Ru,addAssetTypeFieldsAttachment:wu,addAssetTypeFieldsAttachments:Eu,setAssetTypeFieldsAttachment:vu,setAssetTypeFieldsAttachments:Vu,updateAssetTypeFieldsAttachment:zu,updateAssetTypeFieldsAttachments:Bu,deleteAssetTypeFieldsAttachment:ju,deleteAssetTypeFieldsAttachments:qu}=Us.actions,Du=t=>t.assetTypeFieldsAttachmentReducer.instances,Cs=o.createSelector([Du],t=>Object.values(t)),TP=S(o.createSelector([Cs,(t,s)=>s],(t,s)=>T(t.filter(e=>e.fields_revision===s)))),$u=t=>s=>s.assetTypeFieldsAttachmentReducer.instances[t],Uu=S(o.createSelector([Cs,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),Cu=Us.reducer,re=R(t=>t.uuid),Lu={instances:{}},Ls=o.createSlice({name:"assetTypeFields",initialState:Lu,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,Lu)),reducers:{initializeAssetTypeFields:re.initialize,addAssetTypeFields:re.addOne,addAssetTypeFieldsMany:re.addMany,setAssetTypeFields:re.setOne,setAssetTypeFieldsMany:re.setMany,updateAssetTypeFields:re.updateOne,updateAssetTypeFieldsMany:re.updateMany,deleteAssetTypeFields:re.deleteOne,deleteAssetTypeFieldsMany:re.deleteMany}}),{initializeAssetTypeFields:ku,addAssetTypeFields:Nu,addAssetTypeFieldsMany:Gu,setAssetTypeFields:Hu,setAssetTypeFieldsMany:Wu,updateAssetTypeFields:Ku,updateAssetTypeFieldsMany:Yu,deleteAssetTypeFields:Zu,deleteAssetTypeFieldsMany:Ju}=Ls.actions,Xu=t=>t.assetTypeFieldsReducer.instances,ht=o.createSelector([Xu],t=>Object.values(t)),IP=S(o.createSelector([ht,(t,s)=>s],(t,s)=>T(t.filter(e=>e.asset_type===s)))),OP=S(o.createSelector([ht,(t,s)=>s],(t,s)=>t.filter(e=>e.asset_type===s).sort((e,n)=>e.submitted_at>n.submitted_at?-1:1)[0])),Qu=t=>s=>s.assetTypeFieldsReducer.instances[t],xu=S(o.createSelector([ht,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),el=Ls.reducer,ue=R(t=>t.uuid),tl={instances:{}},ks=o.createSlice({name:"assetTypeFieldValuesAttachments",initialState:tl,extraReducers:t=>t.addMatcher(o.isAnyOf(_,D,w),s=>Object.assign(s,tl)),reducers:{initializeAssetTypeFieldValuesAttachments:ue.initialize,addAssetTypeFieldValuesAttachment:ue.addOne,addAssetTypeFieldValuesAttachments:ue.addMany,setAssetTypeFieldValuesAttachment:ue.setOne,setAssetTypeFieldValuesAttachments:ue.setMany,updateAssetTypeFieldValuesAttachment:ue.updateOne,updateAssetTypeFieldValuesAttachments:ue.updateMany,deleteAssetTypeFieldValuesAttachment:ue.deleteOne,deleteAssetTypeFieldValuesAttachments:ue.deleteMany}}),{initializeAssetTypeFieldValuesAttachments:sl,addAssetTypeFieldValuesAttachment:il,addAssetTypeFieldValuesAttachments:Ns,setAssetTypeFieldValuesAttachment:nl,setAssetTypeFieldValuesAttachments:al,updateAssetTypeFieldValuesAttachment:cl,updateAssetTypeFieldValuesAttachments:dl,deleteAssetTypeFieldValuesAttachment:rl,deleteAssetTypeFieldValuesAttachments:Gs}=ks.actions,ul=t=>t.assetTypeFieldValuesAttachmentReducer.instances,Hs=o.createSelector([ul],t=>Object.values(t)),ll=t=>s=>s.assetTypeFieldValuesAttachmentReducer.instances[t],ol=S(o.createSelector([Hs,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),hl=S(o.createSelector([Hs,(t,s)=>s],(t,s)=>T(t.filter(e=>e.field_values===s)))),ml=ks.reducer,le=R(t=>t.uuid),yl={instances:{}},Ws=o.createSlice({name:"assetTypeFieldValues",initialState:yl,extraReducers:t=>t.addMatcher(o.isAnyOf(_,D,w),s=>Object.assign(s,yl)),reducers:{initializeAssetTypeFieldValues:le.initialize,addAssetTypeFieldValues:le.addOne,addAssetTypeFieldValuesMany:le.addMany,setAssetTypeFieldValues:le.setOne,setAssetTypeFieldValuesMany:le.setMany,updateAssetTypeFieldValues:le.updateOne,updateAssetTypeFieldValuesMany:le.updateMany,deleteAssetTypeFieldValues:le.deleteOne,deleteAssetTypeFieldValuesMany:le.deleteMany}}),{initializeAssetTypeFieldValues:pl,addAssetTypeFieldValues:Al,addAssetTypeFieldValuesMany:fl,setAssetTypeFieldValues:Sl,setAssetTypeFieldValuesMany:Tl,updateAssetTypeFieldValues:Il,updateAssetTypeFieldValuesMany:Ol,deleteAssetTypeFieldValues:Pl,deleteAssetTypeFieldValuesMany:Fl}=Ws.actions,gl=t=>t.assetTypeFieldValuesReducer.instances,bt=o.createSelector([gl],t=>Object.values(t)),PP=S(o.createSelector([bt,(t,s)=>s],(t,s)=>T(t.filter(e=>e.asset===s)))),FP=S(o.createSelector([ht,bt,(t,s)=>s],(t,s,e)=>{const n=new Set(t.filter(a=>a.asset_type===e).map(a=>a.uuid));return T(s.filter(a=>n.has(a.fields_revision)))})),bl=t=>s=>s.assetTypeFieldValuesReducer.instances[t],_l=S(o.createSelector([bt,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),Ml=Ws.reducer,oe=R(t=>t.uuid),Rl={instances:{}},Ks=o.createSlice({name:"assetTypeIdentifiers",initialState:Rl,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,Rl)),reducers:{initializeAssetTypeIdentifiers:oe.initialize,addAssetTypeIdentifier:oe.addOne,addAssetTypeIdentifiers:oe.addMany,setAssetTypeIdentifier:oe.setOne,setAssetTypeIdentifiers:oe.setMany,updateAssetTypeIdentifier:oe.updateOne,updateAssetTypeIdentifiers:oe.updateMany,deleteAssetTypeIdentifier:oe.deleteOne,deleteAssetTypeIdentifiers:oe.deleteMany}}),{initializeAssetTypeIdentifiers:wl,addAssetTypeIdentifier:El,addAssetTypeIdentifiers:vl,setAssetTypeIdentifier:Vl,setAssetTypeIdentifiers:zl,updateAssetTypeIdentifier:Bl,updateAssetTypeIdentifiers:jl,deleteAssetTypeIdentifier:ql,deleteAssetTypeIdentifiers:Dl}=Ks.actions,$l=t=>t.assetTypeIdentifierReducer.instances,Ys=o.createSelector([$l],t=>Object.values(t)),Ul=t=>s=>s.assetTypeIdentifierReducer.instances[t],Cl=S(o.createSelector([Ys,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),gP=S(o.createSelector([Ys,(t,s)=>s],(t,s)=>T(t.filter(e=>e.asset_type===s)))),Ll=Ks.reducer,he=R(t=>t.uuid),kl={instances:{}},Zs=o.createSlice({name:"assetTypeIdentifierValues",initialState:kl,extraReducers:t=>t.addMatcher(o.isAnyOf(_,D,w),s=>Object.assign(s,kl)),reducers:{initializeAssetTypeIdentifierValues:he.initialize,addAssetTypeIdentifierValue:he.addOne,addAssetTypeIdentifierValues:he.addMany,setAssetTypeIdentifierValue:he.setOne,setAssetTypeIdentifierValues:he.setMany,updateAssetTypeIdentifierValue:he.updateOne,updateAssetTypeIdentifierValues:he.updateMany,deleteAssetTypeIdentifierValue:he.deleteOne,deleteAssetTypeIdentifierValues:he.deleteMany}}),{initializeAssetTypeIdentifierValues:Nl,addAssetTypeIdentifierValue:Gl,addAssetTypeIdentifierValues:Hl,setAssetTypeIdentifierValue:Wl,setAssetTypeIdentifierValues:Kl,updateAssetTypeIdentifierValue:Yl,updateAssetTypeIdentifierValues:Zl,deleteAssetTypeIdentifierValue:Jl,deleteAssetTypeIdentifierValues:Xl}=Zs.actions,Ql=t=>t.assetTypeIdentifierValueReducer.instances,_t=o.createSelector([Ql],t=>Object.values(t)),xl=t=>s=>s.assetTypeIdentifierValueReducer.instances[t],eo=S(o.createSelector([_t,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),bP=S(o.createSelector([_t,(t,s)=>s],(t,s)=>T(t.filter(e=>e.asset===s)))),_P=S(o.createSelector([_t,(t,s)=>s],(t,s)=>T(t.filter(e=>e.asset_type_identifier===s)))),to=Zs.reducer,me=R(t=>t.uuid),so={instances:{}},Js=o.createSlice({name:"assetTypes",initialState:so,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,so)),reducers:{initializeAssetTypes:me.initialize,setAssetType:me.setOne,setAssetTypes:me.setMany,addAssetType:me.addOne,addAssetTypes:me.addMany,updateAssetType:me.updateOne,updateAssetTypes:me.updateMany,deleteAssetType:me.deleteOne,deleteAssetTypes:me.deleteMany}}),{initializeAssetTypes:io,setAssetType:no,setAssetTypes:ao,addAssetType:co,addAssetTypes:ro,updateAssetType:uo,updateAssetTypes:lo,deleteAssetType:oo,deleteAssetTypes:ho}=Js.actions,mo=t=>t.assetTypeReducer.instances,Xs=o.createSelector([mo],t=>Object.values(t)),yo=t=>s=>s.assetTypeReducer.instances[t],po=S(o.createSelector([Xs,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),MP=S(o.createSelector([Xs,(t,s)=>s],(t,s)=>T(t.filter(e=>e.organization===s)))),Ao=Js.reducer,ye=R(t=>t.uuid),fo={instances:{}},Qs=o.createSlice({name:"assetTypeStatuses",initialState:fo,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,fo)),reducers:{initializeAssetTypeStatuses:ye.initialize,addAssetTypeStatus:ye.addOne,addAssetTypeStatuses:ye.addMany,setAssetTypeStatus:ye.setOne,setAssetTypeStatuses:ye.setMany,updateAssetTypeStatus:ye.updateOne,updateAssetTypeStatuses:ye.updateMany,deleteAssetTypeStatus:ye.deleteOne,deleteAssetTypeStatuses:ye.deleteMany}}),{initializeAssetTypeStatuses:So,addAssetTypeStatus:To,addAssetTypeStatuses:Io,setAssetTypeStatus:Oo,setAssetTypeStatuses:Po,updateAssetTypeStatus:Fo,updateAssetTypeStatuses:go,deleteAssetTypeStatus:bo,deleteAssetTypeStatuses:_o}=Qs.actions,Mo=t=>t.assetTypeStatusReducer.instances,xs=o.createSelector([Mo],t=>T(Object.values(t).toSorted(sa))),Ro=t=>s=>s.assetTypeStatusReducer.instances[t],wo=S(o.createSelector([xs,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),RP=S(o.createSelector([xs,(t,s)=>s],(t,s)=>T(t.filter(e=>e.asset_type===s)))),Eo=Qs.reducer,vo={accessToken:"",refreshToken:"",isLoggedIn:!1},Mt=o.createSlice({name:"auth",initialState:vo,extraReducers:t=>t.addCase(_,s=>Object.assign(s,vo)),reducers:{setTokens:(t,s)=>{t.accessToken=s.payload.accessToken,t.refreshToken=s.payload.refreshToken},clearTokens:t=>{t.accessToken="",t.refreshToken=""},setLoggedIn:(t,s)=>{s.payload||Mt.caseReducers.clearTokens(t),t.isLoggedIn=s.payload}}}),{setTokens:wP,clearTokens:EP,setLoggedIn:Vo}=Mt.actions,vP=t=>t.authReducer.accessToken,VP=t=>t.authReducer.isLoggedIn,zo=Mt.reducer,pe=R(t=>t.uuid),Bo={instances:{}},ei=o.createSlice({name:"documentAttachments",initialState:Bo,extraReducers:t=>t.addCase(_,s=>Object.assign(s,Bo)),reducers:{initializeDocumentAttachments:pe.initialize,addDocumentAttachment:pe.addOne,addDocumentAttachments:pe.addMany,setDocumentAttachment:pe.setOne,setDocumentAttachments:pe.setMany,updateDocumentAttachment:pe.updateOne,updateDocumentAttachments:pe.updateMany,deleteDocumentAttachment:pe.deleteOne,deleteDocumentAttachments:pe.deleteMany}}),{initializeDocumentAttachments:jo,addDocumentAttachment:qo,addDocumentAttachments:Do,setDocumentAttachment:$o,setDocumentAttachments:Uo,updateDocumentAttachment:Co,updateDocumentAttachments:Lo,deleteDocumentAttachment:ko,deleteDocumentAttachments:No}=ei.actions,Go=t=>t.documentAttachmentReducer.instances,ti=o.createSelector([Go],t=>Object.values(t)),Ho=t=>s=>s.documentAttachmentReducer.instances[t],Wo=S(o.createSelector([ti,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),zP=S(o.createSelector([ti,(t,s)=>s],(t,s)=>T(t.filter(({document:e})=>s===e)))),Ko=ei.reducer,Ae=R(({uuid:t})=>t),Yo={instances:{}},si=o.createSlice({name:"documents",initialState:Yo,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>{Object.assign(s,Yo)}),reducers:{initializeDocuments:Ae.initialize,addDocument:Ae.addOne,addDocuments:Ae.addMany,setDocument:Ae.setOne,setDocuments:Ae.setMany,updateDocument:Ae.updateOne,updateDocuments:Ae.updateMany,deleteDocument:Ae.deleteOne,deleteDocuments:Ae.deleteMany}}),{initializeDocuments:Zo,addDocument:Jo,addDocuments:Xo,setDocument:Qo,setDocuments:xo,updateDocument:eh,updateDocuments:th,deleteDocument:sh,deleteDocuments:ih}=si.actions,nh=si.reducer,ii=t=>t.documentsReducer.instances,Rt=o.createSelector([ii],t=>Object.values(t)),ah=t=>s=>s.documentsReducer.instances[t],ch=S(o.createSelector([Rt,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),BP=S(o.createSelector([Rt,(t,s)=>s],(t,s)=>t.filter(e=>e.project===s))),jP=S(o.createSelector([Rt,(t,s)=>s],(t,s)=>t.filter(e=>e.organization===s))),dh=S(o.createSelector([ii,(t,s)=>s],(t,s)=>{if(!t[s])return T([]);const a=aa(s,Object.values(t)).all().map(({model:c})=>c);return T(a)})),fe=R(t=>t.uuid),rh={instances:{}},ni=o.createSlice({name:"emailDomains",initialState:rh,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,rh)),reducers:{initializeEmailDomains:fe.initialize,addEmailDomain:fe.addOne,addEmailDomains:fe.addMany,setEmailDomain:fe.setOne,setEmailDomains:fe.setMany,updateEmailDomain:fe.updateOne,updateEmailDomains:fe.updateMany,deleteEmailDomain:fe.deleteOne,deleteEmailDomains:fe.deleteMany}}),{initializeEmailDomains:uh,addEmailDomain:lh,addEmailDomains:oh,setEmailDomain:hh,setEmailDomains:mh,updateEmailDomain:yh,updateEmailDomains:ph,deleteEmailDomain:Ah,deleteEmailDomains:fh}=ni.actions,Sh=t=>t.emailDomainsReducer.instances,ai=o.createSelector([Sh],t=>Object.values(t)),Th=t=>s=>s.emailDomainsReducer.instances[t],Ih=S(o.createSelector([ai,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),qP=S(o.createSelector([ai,(t,s)=>s],(t,s)=>T(t.filter(e=>e.organization===s)))),Oh=ni.reducer,Ph={s3Urls:{}},Fh=1e3*60*60,DP=Fh*24*7,ci=o.createSlice({name:"file",initialState:Ph,extraReducers:t=>t.addCase(_,s=>Object.assign(s,Ph)),reducers:{setUploadUrl:(t,s)=>{const{url:e,fields:n,sha1:a}=s.payload,c=new Date,r=new Date(c.getTime()+DP);t.s3Urls[a]={url:e,fields:n,exp:r.getTime()}}}}),{setUploadUrl:gh}=ci.actions,bh=t=>s=>{const e=s.fileReducer.s3Urls[t];if(!e)return;const n=new Date().getTime();if(!((e.exp??n)-n<Fh))return e},_h=ci.reducer,Se=R(t=>t.uuid),Mh={instances:{}},di=o.createSlice({name:"formIdentifiers",initialState:Mh,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,Mh)),reducers:{initializeFormIdentifiers:Se.initialize,addFormIdentifier:Se.addOne,addFormIdentifiers:Se.addMany,setFormIdentifier:Se.setOne,setFormIdentifiers:Se.setMany,updateFormIdentifier:Se.updateOne,updateFormIdentifiers:Se.updateMany,deleteFormIdentifier:Se.deleteOne,deleteFormIdentifiers:Se.deleteMany}}),{initializeFormIdentifiers:Rh,addFormIdentifier:wh,addFormIdentifiers:Eh,setFormIdentifier:vh,setFormIdentifiers:Vh,updateFormIdentifier:zh,updateFormIdentifiers:Bh,deleteFormIdentifier:jh,deleteFormIdentifiers:qh}=di.actions,Dh=t=>t.formIdentifierReducer.instances,ri=o.createSelector([Dh],t=>Object.values(t)),$h=t=>s=>s.formIdentifierReducer.instances[t],Uh=S(o.createSelector([ri,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),$P=S(o.createSelector([ri,(t,s)=>s],(t,s)=>T(t.filter(e=>e.form===s)))),Ch=di.reducer,Te=R(t=>t.uuid),Lh={instances:{}},ui=o.createSlice({name:"formIdentifierValues",initialState:Lh,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,Lh)),reducers:{initializeFormIdentifierValues:Te.initialize,addFormIdentifierValue:Te.addOne,addFormIdentifierValues:Te.addMany,setFormIdentifierValue:Te.setOne,setFormIdentifierValues:Te.setMany,updateFormIdentifierValue:Te.updateOne,updateFormIdentifierValues:Te.updateMany,deleteFormIdentifierValue:Te.deleteOne,deleteFormIdentifierValues:Te.deleteMany}}),{initializeFormIdentifierValues:kh,addFormIdentifierValue:Nh,addFormIdentifierValues:Gh,setFormIdentifierValue:Hh,setFormIdentifierValues:Wh,updateFormIdentifierValue:Kh,updateFormIdentifierValues:Yh,deleteFormIdentifierValue:Zh,deleteFormIdentifierValues:Jh}=ui.actions,Xh=t=>t.formIdentifierValueReducer.instances,wt=o.createSelector([Xh],t=>Object.values(t)),Qh=t=>s=>s.formIdentifierValueReducer.instances[t],xh=S(o.createSelector([wt,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),UP=S(o.createSelector([wt,(t,s)=>s],(t,s)=>T(t.filter(e=>e.form_submission===s)))),CP=S(o.createSelector([wt,(t,s)=>s],(t,s)=>T(t.filter(e=>e.form_identifier===s)))),em=ui.reducer,Ie=R(t=>t.uuid),tm={instances:{}},li=o.createSlice({name:"formRevisionAttachments",initialState:tm,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,tm)),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:sm,addFormRevisionAttachment:im,addFormRevisionAttachments:nm,setFormRevisionAttachment:am,setFormRevisionAttachments:cm,updateFormRevisionAttachment:dm,updateFormRevisionAttachments:rm,deleteFormRevisionAttachment:um,deleteFormRevisionAttachments:lm}=li.actions,Et=t=>t.formRevisionAttachmentReducer.instances,om=o.createSelector([Et],t=>Object.values(t)),hm=S(o.createSelector([Et,(t,s)=>s],(t,s)=>t[s])),mm=S(o.createSelector([om,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),LP=S(o.createSelector([Et,(t,s)=>s],(t,s)=>T(Object.values(t).filter(e=>e.form_revision===s)))),ym=li.reducer,Oe=R(t=>t.uuid),pm={instances:{}},oi=o.createSlice({name:"formRevisions",initialState:pm,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,pm)),reducers:{initializeFormRevisions:Oe.initialize,addFormRevision:Oe.addOne,addFormRevisions:Oe.addMany,setFormRevision:Oe.setOne,setFormRevisions:Oe.setMany,updateFormRevision:Oe.updateOne,updateFormRevisions:Oe.updateMany,deleteFormRevision:Oe.deleteOne,deleteFormRevisions:Oe.deleteMany}}),{initializeFormRevisions:Am,addFormRevision:hi,addFormRevisions:mi,setFormRevision:fm,setFormRevisions:Sm,updateFormRevision:Tm,updateFormRevisions:Im,deleteFormRevision:yi,deleteFormRevisions:pi}=oi.actions,Ai=t=>t.formRevisionReducer.instances,vt=o.createSelector([Ai],t=>Object.values(t)),Om=t=>s=>s.formRevisionReducer.instances[t],Pm=S(o.createSelector([vt,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),kP=S(o.createSelector([vt,(t,s)=>s],(t,s)=>t.filter(e=>e.form===s).sort((e,n)=>e.submitted_at>n.submitted_at?-1:1)[0])),Fm=S(o.createSelector([vt,(t,s)=>s],(t,s)=>T(t.filter(e=>e.form===s)))),gm=oi.reducer,Pe=R(t=>t.uuid),bm={instances:{}},fi=o.createSlice({name:"forms",initialState:bm,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,bm)),reducers:{initializeForms:Pe.initialize,addForm:Pe.addOne,addForms:Pe.addMany,setForm:Pe.setOne,setForms:Pe.setMany,updateForm:Pe.updateOne,updateForms:Pe.updateMany,deleteForm:Pe.deleteOne,deleteForms:Pe.deleteMany}}),{initializeForms:_m,addForm:Mm,addForms:Rm,setForm:wm,setForms:Em,updateForm:vm,updateForms:Vm,deleteForm:zm,deleteForms:Bm}=fi.actions,jm=fi.reducer,qm=t=>t.formReducer.instances,Si=o.createSelector([qm],t=>Object.values(t)),Dm=t=>s=>s.formReducer.instances[t],$m=S(o.createSelector([Si,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),NP=S(o.createSelector([Si,(t,s)=>s],(t,s)=>T(t.filter(e=>e.organization===s)))),Fe=R(t=>t.uuid),Um={instances:{}},Ti=o.createSlice({name:"formSubmissionAttachments",initialState:Um,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,Um)),reducers:{initializeFormSubmissionAttachments:Fe.initialize,addFormSubmissionAttachment:Fe.addOne,addFormSubmissionAttachments:Fe.addMany,setFormSubmissionAttachment:Fe.setOne,setFormSubmissionAttachments:Fe.setMany,updateFormSubmissionAttachment:Fe.updateOne,updateFormSubmissionAttachments:Fe.updateMany,deleteFormSubmissionAttachment:Fe.deleteOne,deleteFormSubmissionAttachments:Fe.deleteMany}}),{initializeFormSubmissionAttachments:Cm,addFormSubmissionAttachment:Lm,addFormSubmissionAttachments:Ii,setFormSubmissionAttachment:km,setFormSubmissionAttachments:Nm,updateFormSubmissionAttachment:Gm,updateFormSubmissionAttachments:Hm,deleteFormSubmissionAttachment:Wm,deleteFormSubmissionAttachments:Oi}=Ti.actions,Pi=t=>t.formSubmissionAttachmentReducer.instances,Fi=o.createSelector([Pi],t=>Object.values(t)),Km=S(o.createSelector([Pi,(t,s)=>s],(t,s)=>t[s])),gi=S(o.createSelector([Fi,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(n=>e.has(n.uuid)))})),Ym=gi,Zm=S(o.createSelector([Fi,(t,s)=>s],(t,s)=>T(t.filter(e=>e.form_submission===s)))),Jm=Ti.reducer,ge=R(t=>t.uuid),Xm={instances:{}},bi=o.createSlice({name:"formSubmissions",initialState:Xm,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,Xm)),reducers:{initializeFormSubmissions:ge.initialize,setFormSubmission:ge.setOne,setFormSubmissions:ge.setMany,addFormSubmission:ge.addOne,addFormSubmissions:ge.addMany,updateFormSubmission:ge.updateOne,updateFormSubmissions:ge.updateMany,deleteFormSubmission:ge.deleteOne,deleteFormSubmissions:ge.deleteMany}}),{initializeFormSubmissions:Qm,setFormSubmission:xm,setFormSubmissions:ey,addFormSubmission:ty,addFormSubmissions:_i,updateFormSubmission:sy,updateFormSubmissions:iy,deleteFormSubmission:ny,deleteFormSubmissions:Mi}=bi.actions,Ri=t=>t.formSubmissionReducer.instances,ay=o.createSelector([Ri],t=>Object.values(t)),cy=t=>s=>s.formSubmissionReducer.instances[t],dy=S(o.createSelector([ay,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),ry=S(o.createSelector([Ri,Ai,(t,s)=>s],(t,s,e)=>{const n=new Set;for(const a of Object.values(s))a.form===e&&n.add(a.uuid);return Object.values(t).filter(a=>n.has(a.form_revision))})),uy=bi.reducer,be=R(t=>t.uuid),ly={instances:{}},wi=o.createSlice({name:"geoImages",initialState:ly,extraReducers:t=>t.addMatcher(o.isAnyOf(_,D,w),s=>Object.assign(s,ly)),reducers:{initializeGeoImages:be.initialize,setGeoImage:be.setOne,setGeoImages:be.setMany,addGeoImage:be.addOne,addGeoImages:be.addMany,updateGeoImage:be.updateOne,updateGeoImages:be.updateMany,deleteGeoImage:be.deleteOne,deleteGeoImages:be.deleteMany}}),{initializeGeoImages:oy,setGeoImage:hy,setGeoImages:my,addGeoImage:yy,addGeoImages:py,updateGeoImage:Ay,updateGeoImages:fy,deleteGeoImage:Sy,deleteGeoImages:Ty}=wi.actions,Iy=t=>t.geoImageReducer.instances,Ei=o.createSelector([Iy],t=>Object.values(t)),Oy=t=>s=>s.geoImageReducer.instances[t],Py=S(o.createSelector([Ei,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),GP=S(o.createSelector([Ei,(t,s)=>s],(t,s)=>T(t.filter(e=>e.project===s)))),Fy=wi.reducer,_e=R(t=>t.uuid),gy={instances:{}},vi=o.createSlice({name:"issueAssociations",initialState:gy,extraReducers:t=>t.addMatcher(o.isAnyOf(_,D,w),s=>Object.assign(s,gy)),reducers:{initializeIssueAssociations:_e.initialize,addIssueAssociation:_e.addOne,addIssueAssociations:_e.addMany,setIssueAssociation:_e.setOne,setIssueAssociations:_e.setMany,updateIssueAssociation:_e.updateOne,updateIssueAssociations:_e.updateMany,deleteIssueAssociation:_e.deleteOne,deleteIssueAssociations:_e.deleteMany}}),{initializeIssueAssociations:by,setIssueAssociations:_y,setIssueAssociation:My,updateIssueAssociation:Ry,updateIssueAssociations:wy,addIssueAssociation:Ey,addIssueAssociations:et,deleteIssueAssociation:vy,deleteIssueAssociations:tt}=vi.actions,Vt=t=>t.issueAssociationReducer.instances,mt=o.createSelector([Vt],t=>Object.values(t)),Vy=t=>s=>s.issueAssociationReducer.instances[t],zy=S(o.createSelector([mt,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),By=S(o.createSelector([Vt,(t,s)=>s],(t,s)=>T(Object.values(t).filter(e=>e.associated_issue===s)))),jy=S(o.createSelector([mt,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({associated_issue:n})=>e.has(n)))})),qy=S(o.createSelector([mt,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({issue:n})=>n&&e.has(n)))})),Dy=S(o.createSelector([mt,(t,s)=>s],(t,s)=>T(t.filter(e=>e.issue===s)))),$y=S(o.createSelector([Vt,(t,s)=>s],(t,s)=>T(Object.values(t).filter(e=>e.asset===s)))),Uy=vi.reducer,Me=R(t=>t.uuid),Cy={instances:{}},Vi=o.createSlice({name:"issueAttachments",initialState:Cy,extraReducers:t=>t.addMatcher(o.isAnyOf(_,D,w),s=>Object.assign(s,Cy)),reducers:{initializeIssueAttachments:Me.initialize,addIssueAttachment:Me.addOne,addIssueAttachments:Me.addMany,setIssueAttachment:Me.setOne,setIssueAttachments:Me.setMany,updateIssueAttachment:Me.updateOne,updateIssueAttachments:Me.updateMany,deleteIssueAttachment:Me.deleteOne,deleteIssueAttachments:Me.deleteMany}}),{initializeIssueAttachments:Ly,addIssueAttachment:ky,addIssueAttachments:zi,setIssueAttachment:Ny,setIssueAttachments:Gy,updateIssueAttachment:Hy,updateIssueAttachments:Wy,deleteIssueAttachment:Ky,deleteIssueAttachments:Bi}=Vi.actions,Yy=t=>t.issueAttachmentReducer.instances,ji=o.createSelector([Yy],t=>Object.values(t)),Zy=S(o.createSelector([ji,(t,s)=>s],(t,s)=>T(t.filter(({issue:e})=>s===e)))),Jy=t=>s=>s.issueAttachmentReducer.instances[t],Xy=S(o.createSelector([ji,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),Qy=Vi.reducer,Re=R(t=>t.uuid),xy={instances:{}},qi=o.createSlice({name:"issueCommentAttachments",initialState:xy,extraReducers:t=>t.addMatcher(o.isAnyOf(_,D,w),s=>Object.assign(s,xy)),reducers:{initializeIssueCommentAttachments:Re.initialize,addIssueCommentAttachment:Re.addOne,addIssueCommentAttachments:Re.addMany,setIssueCommentAttachment:Re.setOne,setIssueCommentAttachments:Re.setMany,updateIssueCommentAttachment:Re.updateOne,updateIssueCommentAttachments:Re.updateMany,deleteIssueCommentAttachment:Re.deleteOne,deleteIssueCommentAttachments:Re.deleteMany}}),{initializeIssueCommentAttachments:ep,addIssueCommentAttachment:tp,addIssueCommentAttachments:sp,setIssueCommentAttachment:ip,setIssueCommentAttachments:np,updateIssueCommentAttachment:ap,updateIssueCommentAttachments:cp,deleteIssueCommentAttachment:dp,deleteIssueCommentAttachments:rp}=qi.actions,up=t=>t.issueCommentAttachmentReducer.instances,Di=o.createSelector([up],t=>Object.values(t)),lp=t=>s=>s.issueCommentAttachmentReducer.instances[t],op=S(o.createSelector([Di,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),HP=S(o.createSelector([Di,(t,s)=>s],(t,s)=>T(t.filter(({issue_comment:e})=>s===e)))),hp=qi.reducer,we=R(t=>t.uuid),mp={instances:{}},$i=o.createSlice({name:"issueComments",initialState:mp,extraReducers:t=>t.addMatcher(o.isAnyOf(_,D,w),s=>Object.assign(s,mp)),reducers:{initializeIssueComments:we.initialize,addIssueComment:we.addOne,addIssueComments:we.addMany,setIssueComment:we.setOne,setIssueComments:we.setMany,updateIssueComment:we.updateOne,updateIssueComments:we.updateMany,deleteIssueComment:we.deleteOne,deleteIssueComments:we.deleteMany}}),{initializeIssueComments:yp,addIssueComment:pp,addIssueComments:Ap,setIssueComment:fp,setIssueComments:Sp,updateIssueComment:Tp,updateIssueComments:Ip,deleteIssueComment:Op,deleteIssueComments:Pp}=$i.actions,Ui=t=>t.issueCommentReducer.instances,Fp=t=>s=>s.issueCommentReducer.instances[t],gp=S(o.createSelector([Ui,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(Object.values(t).filter(({uuid:n})=>e.has(n)))})),WP=S(o.createSelector([Ui,(t,s)=>s],(t,s)=>T(Object.values(t).filter(e=>e.issue===s)))),bp=$i.reducer,Ee=R(t=>t.uuid),_p={instances:{}},Ci=o.createSlice({name:"issues",initialState:_p,extraReducers:t=>t.addMatcher(o.isAnyOf(_,D,w),s=>Object.assign(s,_p)),reducers:{initializeIssues:Ee.initialize,addIssue:Ee.addOne,addIssues:Ee.addMany,setIssue:Ee.setOne,setIssues:Ee.setMany,updateIssue:Ee.updateOne,updateIssues:Ee.updateMany,deleteIssue:Ee.deleteOne,deleteIssues:Ee.deleteMany}}),{initializeIssues:Mp,addIssue:Rp,addIssues:Li,setIssue:wp,setIssues:Ep,updateIssue:vp,updateIssues:Vp,deleteIssue:zp,deleteIssues:ki}=Ci.actions,Bp=t=>t.issueReducer.instances,zt=o.createSelector([Bp],t=>Object.values(t)),jp=t=>s=>s.issueReducer.instances[t],qp=S(o.createSelector([zt,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),KP=S(o.createSelector([zt,(t,s)=>s],(t,s)=>t.filter(e=>e.project===s))),Dp=S(o.createSelector([zt,(t,s)=>s],(t,s)=>t.filter(e=>e.issue_type===s))),$p=Ci.reducer,ve=R(t=>t.uuid),Up={instances:{}},Ni=o.createSlice({name:"issueTypeAttachments",initialState:Up,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,Up)),reducers:{initializeIssueTypeAttachments:ve.initialize,addIssueTypeAttachment:ve.addOne,addIssueTypeAttachments:ve.addMany,setIssueTypeAttachment:ve.setOne,setIssueTypeAttachments:ve.setMany,updateIssueTypeAttachment:ve.updateOne,updateIssueTypeAttachments:ve.updateMany,deleteIssueTypeAttachment:ve.deleteOne,deleteIssueTypeAttachments:ve.deleteMany}}),{initializeIssueTypeAttachments:Cp,addIssueTypeAttachment:Lp,addIssueTypeAttachments:kp,setIssueTypeAttachment:Np,setIssueTypeAttachments:Gp,updateIssueTypeAttachment:Hp,updateIssueTypeAttachments:Wp,deleteIssueTypeAttachment:Kp,deleteIssueTypeAttachments:Yp}=Ni.actions,Zp=t=>t.issueTypeAttachmentReducer.instances,Gi=o.createSelector([Zp],t=>Object.values(t)),Jp=t=>s=>s.issueTypeAttachmentReducer.instances[t],Xp=S(o.createSelector([Gi,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),YP=S(o.createSelector([Gi,(t,s)=>s],(t,s)=>T(t.filter(({issue_type:e})=>s===e)))),Qp=Ni.reducer,Ve=R(t=>t.uuid),xp={instances:{}},Hi=o.createSlice({name:"issueTypeFieldsAttachments",initialState:xp,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,xp)),reducers:{initializeIssueTypeFieldsAttachments:Ve.initialize,addIssueTypeFieldsAttachment:Ve.addOne,addIssueTypeFieldsAttachments:Ve.addMany,setIssueTypeFieldsAttachment:Ve.setOne,setIssueTypeFieldsAttachments:Ve.setMany,updateIssueTypeFieldsAttachment:Ve.updateOne,updateIssueTypeFieldsAttachments:Ve.updateMany,deleteIssueTypeFieldsAttachment:Ve.deleteOne,deleteIssueTypeFieldsAttachments:Ve.deleteMany}}),{initializeIssueTypeFieldsAttachments:eA,addIssueTypeFieldsAttachment:tA,addIssueTypeFieldsAttachments:sA,setIssueTypeFieldsAttachment:iA,setIssueTypeFieldsAttachments:nA,updateIssueTypeFieldsAttachment:aA,updateIssueTypeFieldsAttachments:cA,deleteIssueTypeFieldsAttachment:dA,deleteIssueTypeFieldsAttachments:rA}=Hi.actions,uA=t=>t.issueTypeFieldsAttachmentReducer.instances,Wi=o.createSelector([uA],t=>Object.values(t)),ZP=S(o.createSelector([Wi,(t,s)=>s],(t,s)=>T(t.filter(e=>e.fields_revision===s)))),lA=t=>s=>s.issueTypeFieldsAttachmentReducer.instances[t],oA=S(o.createSelector([Wi,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),hA=Hi.reducer,ze=R(t=>t.uuid),mA={instances:{}},Ki=o.createSlice({name:"issueTypeFieldValues",initialState:mA,extraReducers:t=>t.addMatcher(o.isAnyOf(_,D,w),s=>Object.assign(s,mA)),reducers:{initializeIssueTypeFieldValues:ze.initialize,addIssueTypeFieldValues:ze.addOne,addIssueTypeFieldValuesMany:ze.addMany,setIssueTypeFieldValues:ze.setOne,setIssueTypeFieldValuesMany:ze.setMany,updateIssueTypeFieldValues:ze.updateOne,updateIssueTypeFieldValuesMany:ze.updateMany,deleteIssueTypeFieldValues:ze.deleteOne,deleteIssueTypeFieldValuesMany:ze.deleteMany}}),{initializeIssueTypeFieldValues:yA,addIssueTypeFieldValues:pA,addIssueTypeFieldValuesMany:AA,setIssueTypeFieldValues:fA,setIssueTypeFieldValuesMany:SA,updateIssueTypeFieldValues:TA,updateIssueTypeFieldValuesMany:IA,deleteIssueTypeFieldValues:OA,deleteIssueTypeFieldValuesMany:PA}=Ki.actions,FA=t=>t.issueTypeFieldValuesReducer.instances,Bt=o.createSelector([FA],t=>Object.values(t)),JP=S(o.createSelector([Bt,(t,s)=>s],(t,s)=>T(t.filter(e=>e.issue===s)))),gA=t=>s=>s.issueTypeFieldValuesReducer.instances[t],bA=S(o.createSelector([Bt,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),_A=Ki.reducer,Be=R(t=>t.uuid),MA={instances:{}},Yi=o.createSlice({name:"issueTypeFields",initialState:MA,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,MA)),reducers:{initializeIssueTypeFields:Be.initialize,addIssueTypeFields:Be.addOne,addIssueTypeFieldsMany:Be.addMany,setIssueTypeFields:Be.setOne,setIssueTypeFieldsMany:Be.setMany,updateIssueTypeFields:Be.updateOne,updateIssueTypeFieldsMany:Be.updateMany,deleteIssueTypeFields:Be.deleteOne,deleteIssueTypeFieldsMany:Be.deleteMany}}),{initializeIssueTypeFields:RA,addIssueTypeFields:wA,addIssueTypeFieldsMany:EA,setIssueTypeFields:vA,setIssueTypeFieldsMany:VA,updateIssueTypeFields:zA,updateIssueTypeFieldsMany:BA,deleteIssueTypeFields:jA,deleteIssueTypeFieldsMany:qA}=Yi.actions,DA=t=>t.issueTypeFieldsReducer.instances,yt=o.createSelector([DA],t=>Object.values(t)),XP=S(o.createSelector([yt,(t,s)=>s],(t,s)=>T(t.filter(e=>e.issue_type===s)))),QP=S(o.createSelector([yt,(t,s)=>s],(t,s)=>t.filter(e=>e.issue_type===s).sort((e,n)=>e.submitted_at>n.submitted_at?-1:1)[0])),xP=S(o.createSelector([yt,Bt,(t,s)=>s],(t,s,e)=>{const n=new Set(t.filter(a=>a.issue_type===e).map(a=>a.uuid));return T(s.filter(a=>n.has(a.fields_revision)))})),$A=t=>s=>s.issueTypeFieldsReducer.instances[t],UA=S(o.createSelector([yt,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),CA=Yi.reducer,je=R(t=>t.uuid),LA={instances:{}},Zi=o.createSlice({name:"issueTypeFieldValuesAttachments",initialState:LA,extraReducers:t=>t.addMatcher(o.isAnyOf(_,D,w),s=>Object.assign(s,LA)),reducers:{initializeIssueTypeFieldValuesAttachments:je.initialize,addIssueTypeFieldValuesAttachment:je.addOne,addIssueTypeFieldValuesAttachments:je.addMany,setIssueTypeFieldValuesAttachment:je.setOne,setIssueTypeFieldValuesAttachments:je.setMany,updateIssueTypeFieldValuesAttachment:je.updateOne,updateIssueTypeFieldValuesAttachments:je.updateMany,deleteIssueTypeFieldValuesAttachment:je.deleteOne,deleteIssueTypeFieldValuesAttachments:je.deleteMany}}),{initializeIssueTypeFieldValuesAttachments:kA,addIssueTypeFieldValuesAttachment:NA,addIssueTypeFieldValuesAttachments:Ji,setIssueTypeFieldValuesAttachment:GA,setIssueTypeFieldValuesAttachments:HA,updateIssueTypeFieldValuesAttachment:WA,updateIssueTypeFieldValuesAttachments:KA,deleteIssueTypeFieldValuesAttachment:YA,deleteIssueTypeFieldValuesAttachments:Xi}=Zi.actions,ZA=t=>t.issueTypeFieldValuesAttachmentReducer.instances,Qi=o.createSelector([ZA],t=>Object.values(t)),JA=t=>s=>s.issueTypeFieldValuesAttachmentReducer.instances[t],XA=S(o.createSelector([Qi,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),QA=S(o.createSelector([Qi,(t,s)=>s],(t,s)=>T(t.filter(e=>e.field_values===s)))),xA=Zi.reducer,qe=R(t=>t.uuid),ef={instances:{}},xi=o.createSlice({name:"issueTypeIdentifiers",initialState:ef,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,ef)),reducers:{initializeIssueTypeIdentifiers:qe.initialize,addIssueTypeIdentifier:qe.addOne,addIssueTypeIdentifiers:qe.addMany,setIssueTypeIdentifier:qe.setOne,setIssueTypeIdentifiers:qe.setMany,updateIssueTypeIdentifier:qe.updateOne,updateIssueTypeIdentifiers:qe.updateMany,deleteIssueTypeIdentifier:qe.deleteOne,deleteIssueTypeIdentifiers:qe.deleteMany}}),{initializeIssueTypeIdentifiers:tf,addIssueTypeIdentifier:sf,addIssueTypeIdentifiers:nf,setIssueTypeIdentifier:af,setIssueTypeIdentifiers:cf,updateIssueTypeIdentifier:df,updateIssueTypeIdentifiers:rf,deleteIssueTypeIdentifier:uf,deleteIssueTypeIdentifiers:lf}=xi.actions,of=t=>t.issueTypeIdentifierReducer.instances,en=o.createSelector([of],t=>Object.values(t)),hf=t=>s=>s.issueTypeIdentifierReducer.instances[t],mf=S(o.createSelector([en,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),eF=S(o.createSelector([en,(t,s)=>s],(t,s)=>T(t.filter(e=>e.issue_type===s)))),yf=xi.reducer,De=R(t=>t.uuid),pf={instances:{}},tn=o.createSlice({name:"issueTypeIdentifierValues",initialState:pf,extraReducers:t=>t.addMatcher(o.isAnyOf(_,D,w),s=>Object.assign(s,pf)),reducers:{initializeIssueTypeIdentifierValues:De.initialize,addIssueTypeIdentifierValue:De.addOne,addIssueTypeIdentifierValues:De.addMany,setIssueTypeIdentifierValue:De.setOne,setIssueTypeIdentifierValues:De.setMany,updateIssueTypeIdentifierValue:De.updateOne,updateIssueTypeIdentifierValues:De.updateMany,deleteIssueTypeIdentifierValue:De.deleteOne,deleteIssueTypeIdentifierValues:De.deleteMany}}),{initializeIssueTypeIdentifierValues:Af,addIssueTypeIdentifierValue:ff,addIssueTypeIdentifierValues:Sf,setIssueTypeIdentifierValue:Tf,setIssueTypeIdentifierValues:If,updateIssueTypeIdentifierValue:Of,updateIssueTypeIdentifierValues:Pf,deleteIssueTypeIdentifierValue:Ff,deleteIssueTypeIdentifierValues:gf}=tn.actions,bf=t=>t.issueTypeIdentifierValueReducer.instances,jt=o.createSelector([bf],t=>Object.values(t)),_f=t=>s=>s.issueTypeIdentifierValueReducer.instances[t],Mf=S(o.createSelector([jt,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),tF=S(o.createSelector([jt,(t,s)=>s],(t,s)=>T(t.filter(e=>e.issue===s)))),sF=S(o.createSelector([jt,(t,s)=>s],(t,s)=>T(t.filter(e=>e.issue_type_identifier===s)))),Rf=tn.reducer,$e=R(t=>t.uuid),wf={instances:{}},sn=o.createSlice({name:"issueTypes",initialState:wf,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,wf)),reducers:{initializeIssueTypes:$e.initialize,addIssueType:$e.addOne,addIssueTypes:$e.addMany,setIssueType:$e.setOne,setIssueTypes:$e.setMany,updateIssueType:$e.updateOne,updateIssueTypes:$e.updateMany,deleteIssueType:$e.deleteOne,deleteIssueTypes:$e.deleteMany}}),{initializeIssueTypes:Ef,addIssueType:vf,addIssueTypes:Vf,setIssueType:zf,setIssueTypes:Bf,updateIssueType:jf,updateIssueTypes:qf,deleteIssueType:Df,deleteIssueTypes:$f}=sn.actions,Uf=t=>t.issueTypeReducer.instances,nn=o.createSelector(Uf,t=>Object.values(t)),Cf=t=>s=>s.issueTypeReducer.instances[t],Lf=S(o.createSelector([nn,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),iF=S(o.createSelector([nn,(t,s)=>s],(t,s)=>T(t.filter(e=>e.organization===s)))),kf=sn.reducer,Ue=R(t=>t.uuid),Nf={instances:{}},an=o.createSlice({name:"issueTypeStatuses",initialState:Nf,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,Nf)),reducers:{initializeIssueTypeStatuses:Ue.initialize,addIssueTypeStatus:Ue.addOne,addIssueTypeStatuses:Ue.addMany,setIssueTypeStatus:Ue.setOne,setIssueTypeStatuses:Ue.setMany,updateIssueTypeStatus:Ue.updateOne,updateIssueTypeStatuses:Ue.updateMany,deleteIssueTypeStatus:Ue.deleteOne,deleteIssueTypeStatuses:Ue.deleteMany}}),{initializeIssueTypeStatuses:Gf,addIssueTypeStatus:Hf,addIssueTypeStatuses:Wf,setIssueTypeStatus:Kf,setIssueTypeStatuses:Yf,updateIssueTypeStatus:Zf,updateIssueTypeStatuses:Jf,deleteIssueTypeStatus:Xf,deleteIssueTypeStatuses:Qf}=an.actions,xf=t=>t.issueTypeStatusReducer.instances,cn=o.createSelector([xf],t=>T(Object.values(t).toSorted(ia))),dn=t=>s=>s.issueTypeStatusReducer.instances[t],eS=S(o.createSelector([cn,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),nF=S(o.createSelector([cn,(t,s)=>s],(t,s)=>T(t.filter(e=>e.issue_type===s)))),tS=an.reducer,Ce=R(t=>t.uuid),sS={instances:{}},rn=o.createSlice({name:"issueUpdates",initialState:sS,extraReducers:t=>t.addMatcher(o.isAnyOf(_,D,w),s=>Object.assign(s,sS)),reducers:{initializeIssueUpdates:Ce.initialize,addIssueUpdate:Ce.addOne,addIssueUpdates:Ce.addMany,setIssueUpdate:Ce.setOne,setIssueUpdates:Ce.setMany,updateIssueUpdate:Ce.updateOne,updateIssueUpdates:Ce.updateMany,deleteIssueUpdate:Ce.deleteOne,deleteIssueUpdates:Ce.deleteMany}}),{initializeIssueUpdates:iS,addIssueUpdate:un,addIssueUpdates:ln,setIssueUpdate:nS,setIssueUpdates:aS,updateIssueUpdate:cS,updateIssueUpdates:dS,deleteIssueUpdate:on,deleteIssueUpdates:hn}=rn.actions,mn=t=>t.issueUpdateReducer.instances,yn=o.createSelector([mn],t=>Object.values(t)),rS=S(o.createSelector([mn,(t,s)=>s],(t,s)=>t[s])),uS=S(o.createSelector([yn,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),lS=S(o.createSelector([yn,(t,s)=>s],(t,s)=>T(t.filter(e=>e.issue===s)))),oS=rn.reducer,Le=R(t=>t.id),hS={instances:{},currentUser:null},pn=o.createSlice({name:"users",initialState:hS,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,hS)),reducers:{initializeUsers:Le.initialize,setUsers:Le.setMany,setUser:Le.setOne,addUsers:Le.addMany,addUser:Le.addOne,updateUsers:Le.updateMany,updateUser:Le.updateOne,deleteUser:Le.deleteOne,deleteUsers:Le.deleteMany,setCurrentUser:(t,s)=>{t.currentUser=s.payload},setProfilePicture:(t,s)=>{if(!t.currentUser)return;t.currentUser.profile.file=s.payload.file??null,t.currentUser.profile.file_sha1=s.payload.file_sha1??null;const e=t.instances[t.currentUser.id];if(!e)throw new Error("Unable to find current user in users slice");e.profile.file=s.payload.file??null,e.profile.file_sha1=s.payload.file_sha1??null}}}),{initializeUsers:mS,setUsers:yS,setUser:pS,addUsers:AS,addUser:An,updateUsers:fS,updateUser:SS,deleteUser:fn,deleteUsers:TS,setCurrentUser:aF,setProfilePicture:cF}=pn.actions,IS=pn.reducer,OS=t=>t.userReducer.currentUser,Sn=t=>t.userReducer.instances,qt=o.createSelector([Sn],t=>Object.values(t)),Dt=t=>s=>s.userReducer.instances[t],PS=S(o.createSelector([qt,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({id:n})=>e.has(n)))})),ke=R(t=>t.uuid),FS={instances:{}},Tn=o.createSlice({name:"organizationAccess",initialState:FS,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,FS)),reducers:{initializeOrganizationAccesses:ke.initialize,addOrganizationAccess:ke.addOne,addOrganizationAccesses:ke.addMany,setOrganizationAccess:ke.setOne,setOrganizationAccesses:ke.setMany,updateOrganizationAccess:ke.updateOne,updateOrganizationAccesses:ke.updateMany,deleteOrganizationAccess:ke.deleteOne,deleteOrganizationAccesses:ke.deleteMany}}),{initializeOrganizationAccesses:gS,addOrganizationAccess:bS,addOrganizationAccesses:_S,setOrganizationAccess:MS,setOrganizationAccesses:RS,updateOrganizationAccess:wS,updateOrganizationAccesses:ES,deleteOrganizationAccess:vS,deleteOrganizationAccesses:VS}=Tn.actions,zS=Tn.reducer,$t=t=>t.organizationAccessReducer.instances,BS=t=>s=>s.organizationAccessReducer.instances[t],jS=S(o.createSelector([$t,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(Object.values(t).filter(({uuid:n})=>e.has(n)))})),dF=o.createSelector([OS,$t],(t,s)=>Object.values(s).find(n=>n.user===(t==null?void 0:t.id))??null),qS=o.createSelector([$t],t=>{const s={};for(const e of Object.values(t))s[e.user]=e;return ft(s)}),rF=S(o.createSelector([Sn,qS,(t,s)=>s],(t,s,e)=>T(Object.values(t).filter(n=>{const a=s[n.id];return!!a&&a.organization===e})))),Ne=R(t=>t.uuid),DS={instances:{}},In=o.createSlice({name:"organizations",initialState:DS,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,DS)),reducers:{initializeOrganizations:Ne.initialize,setOrganizations:Ne.setMany,setOrganization:Ne.setOne,addOrganizations:Ne.addMany,addOrganization:Ne.addOne,updateOrganizations:Ne.updateMany,updateOrganization:Ne.updateOne,deleteOrganization:Ne.deleteOne,deleteOrganizations:Ne.deleteMany}}),{initializeOrganizations:$S,setOrganizations:US,setOrganization:CS,addOrganizations:LS,addOrganization:kS,updateOrganizations:NS,updateOrganization:GS,deleteOrganization:HS,deleteOrganizations:WS}=In.actions,KS=t=>t.organizationReducer.instances,YS=o.createSelector([KS],t=>Object.values(t)),ZS=t=>s=>s.organizationReducer.instances[t],JS=S(o.createSelector([YS,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),XS=In.reducer,QS=(t,s,e)=>{const n=t.uuid?t:{...t,uuid:Qe.v4()};return{payload:n,type:"",meta:{offline:{effect:{timestamp:new Date().toISOString(),request:n,BASE_URL:s,serviceName:e}}}}},xS={deletedRequests:[],latestRetryTime:0},On=o.createSlice({name:"outbox",initialState:xS,extraReducers:t=>t.addCase(_,s=>Object.assign(s,xS)),reducers:{enqueueRequest:{reducer:(t,s)=>t,prepare:t=>{console.debug("Preparing to enqueue request",t.url);const{BASE_URL:s,serviceName:e,...n}=t;return QS(n,s,e)}},markForDeletion(t,s){t.deletedRequests.push(s.payload)},markAsDeleted(t,s){const e=t.deletedRequests.indexOf(s.payload);e!==-1&&t.deletedRequests.splice(e,1)},_setLatestRetryTime:(t,s)=>{t.latestRetryTime=s.payload}}}),uF=t=>t.outboxReducer.deletedRequests,lF=t=>t.outboxReducer.latestRetryTime,{enqueueRequest:eT,markForDeletion:oF,markAsDeleted:tT,_setLatestRetryTime:sT}=On.actions,iT=On.reducer,Ge=R(t=>t.uuid),nT={instances:{}},Pn=o.createSlice({name:"projectAccess",initialState:nT,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,nT)),reducers:{initializeProjectAccesses:Ge.initialize,addProjectAccess:Ge.addOne,addProjectAccesses:Ge.addMany,setProjectAccess:Ge.setOne,setProjectAccesses:Ge.setMany,updateProjectAccess:Ge.updateOne,updateProjectAccesses:Ge.updateMany,deleteProjectAccess:Ge.deleteOne,deleteProjectAccesses:Ge.deleteMany}}),{initializeProjectAccesses:aT,addProjectAccess:cT,addProjectAccesses:dT,setProjectAccess:rT,setProjectAccesses:uT,updateProjectAccess:lT,updateProjectAccesses:oT,deleteProjectAccess:hT,deleteProjectAccesses:mT}=Pn.actions,yT=Pn.reducer,Fn=t=>t.projectAccessReducer.instances,pt=o.createSelector(Fn,t=>Object.values(t)),pT=t=>s=>s.projectAccessReducer.instances[t],AT=S(o.createSelector([pt,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),hF=S(o.createSelector([Fn,(t,s)=>s],(t,s)=>T(Object.values(t).filter(e=>e.project===s)))),mF=S(o.createSelector([pt,(t,s)=>s],(t,s)=>{const e={};for(const n of t.filter(a=>a.project===s))e[n.user]=n;return e})),yF=S(o.createSelector([qt,pt,(t,s)=>s],(t,s,e)=>{const n=new Set(s.filter(a=>a.project===e).map(a=>a.user));return T(t.filter(a=>n.has(a.id)))})),He=R(t=>t.uuid),fT={instances:{}},gn=o.createSlice({name:"projectAttachments",initialState:fT,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,fT)),reducers:{initializeProjectAttachments:He.initialize,addProjectAttachment:He.addOne,addProjectAttachments:He.addMany,setProjectAttachment:He.setOne,setProjectAttachments:He.setMany,updateProjectAttachment:He.updateOne,updateProjectAttachments:He.updateMany,deleteProjectAttachment:He.deleteOne,deleteProjectAttachments:He.deleteMany}}),{initializeProjectAttachments:ST,addProjectAttachment:TT,addProjectAttachments:IT,setProjectAttachment:OT,setProjectAttachments:PT,updateProjectAttachment:FT,updateProjectAttachments:gT,deleteProjectAttachment:bT,deleteProjectAttachments:_T}=gn.actions,MT=t=>t.projectAttachmentReducer.instances,bn=o.createSelector([MT],t=>Object.values(t)),RT=t=>s=>s.projectAttachmentReducer.instances[t],wT=S(o.createSelector([bn,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),pF=S(o.createSelector([bn,(t,s)=>s],(t,s)=>T(t.filter(({project:e})=>s===e)))),ET=gn.reducer,We=R(t=>t.uuid),vT={instances:{},activeProjectFileId:null,isImportingProjectFile:!1},_n=o.createSlice({name:"projectFiles",initialState:vT,extraReducers:t=>t.addMatcher(o.isAnyOf(_,D,w),s=>Object.assign(s,vT)),reducers:{initializeProjectFiles:We.initialize,setProjectFile:We.setOne,setProjectFiles:We.setMany,addProjectFile:We.addOne,addProjectFiles:We.addMany,updateProjectFile:We.updateOne,updateProjectFiles:We.updateMany,deleteProjectFile:We.deleteOne,deleteProjectFiles:We.deleteMany,setIsImportingProjectFile:(t,s)=>{t.isImportingProjectFile=s.payload},saveActiveProjectFileBounds:(t,s)=>{const e=t.activeProjectFileId;if(!e)throw new Error("Tried to save bounds for active project file, but no active project file was set.");if(!t.instances[e])throw new Error(`Tried to save bounds for active project file, but project file with ID ${e}
2
+ doesn't exist.`);t.instances[e].bounds=s.payload},setActiveProjectFileId:(t,s)=>{t.activeProjectFileId=s.payload}}}),{initializeProjectFiles:VT,setProjectFile:zT,setProjectFiles:BT,addProjectFile:jT,addProjectFiles:qT,updateProjectFile:DT,updateProjectFiles:$T,deleteProjectFile:UT,deleteProjectFiles:CT,setIsImportingProjectFile:LT,setActiveProjectFileId:kT,saveActiveProjectFileBounds:NT}=_n.actions,GT=t=>t.projectFileReducer.instances,HT=o.createSelector([GT],t=>T(Object.values(t).sort((s,e)=>s.z_index-e.z_index))),WT=t=>s=>s.projectFileReducer.instances[t],KT=S(o.createSelector([HT,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),AF=t=>t.projectFileReducer.activeProjectFileId,fF=t=>t.projectFileReducer.isImportingProjectFile,YT=_n.reducer,Ke=R(t=>t.uuid),ZT={instances:{}},Mn=o.createSlice({name:"projects",initialState:ZT,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,ZT)),reducers:{initializeProjects:Ke.initialize,setProjects:Ke.setMany,setProject:Ke.setOne,addProjects:Ke.addMany,addProject:Ke.addOne,updateProjects:Ke.updateMany,updateProject:Ke.updateOne,deleteProject:Ke.deleteOne,deleteProjects:Ke.deleteMany}}),{initializeProjects:JT,setProjects:XT,setProject:QT,addProjects:xT,addProject:eI,updateProjects:tI,updateProject:sI,deleteProject:iI,deleteProjects:nI}=Mn.actions,aI=Mn.reducer,cI=t=>t.projectReducer.instances,Ut=o.createSelector([cI],t=>Object.values(t)),dI=t=>s=>s.projectReducer.instances[t],rI=S(o.createSelector([Ut,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),SF=S(o.createSelector([Ut,pt,(t,s)=>s],(t,s,e)=>{const n=new Set(s.filter(a=>a.user===e).map(a=>a.project));return T(t.filter(a=>n.has(a.uuid)))})),TF=S(o.createSelector([Ut,(t,s)=>s],(t,s)=>T(t.filter(e=>e.organization===s)))),IF={isRehydrated:!1},Rn=o.createSlice({name:"rehydrated",initialState:IF,reducers:{setRehydrated:(t,s)=>{t.isRehydrated=s.payload}}}),{setRehydrated:OF}=Rn.actions,PF=t=>t.rehydratedReducer.isRehydrated,uI=Rn.reducer,Ye=R(t=>t.uuid),lI={instances:{}},wn=o.createSlice({name:"teamMemberships",initialState:lI,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,lI)),reducers:{initializeTeamMemberships:Ye.initialize,addTeamMembership:Ye.addOne,addTeamMemberships:Ye.addMany,setTeamMembership:Ye.setOne,setTeamMemberships:Ye.setMany,updateTeamMembership:Ye.updateOne,updateTeamMemberships:Ye.updateMany,deleteTeamMembership:Ye.deleteOne,deleteTeamMemberships:Ye.deleteMany}}),{initializeTeamMemberships:oI,addTeamMembership:hI,addTeamMemberships:mI,setTeamMembership:yI,setTeamMemberships:pI,updateTeamMembership:AI,updateTeamMemberships:fI,deleteTeamMembership:SI,deleteTeamMemberships:TI}=wn.actions,II=wn.reducer,OI=t=>t.teamMembershipReducer.instances,Ct=o.createSelector([OI],t=>Object.values(t)),PI=t=>s=>s.teamMembershipReducer.instances[t],FI=S(o.createSelector([Ct,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),FF=S(o.createSelector([Ct,(t,s)=>s],(t,s)=>{const e={};for(const n of t.filter(a=>a.team===s))e[n.user]=n;return e})),gF=S(o.createSelector([qt,Ct,(t,s)=>s],(t,s,e)=>{const n=new Set(s.filter(a=>a.team===e).map(a=>a.user));return T(t.filter(a=>n.has(a.id)))})),Ze=R(t=>t.uuid),gI={instances:{}},En=o.createSlice({name:"teams",initialState:gI,extraReducers:t=>t.addMatcher(o.isAnyOf(_,w),s=>Object.assign(s,gI)),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:bI,addTeam:_I,addTeams:MI,setTeam:RI,setTeams:wI,updateTeam:EI,updateTeams:vI,deleteTeam:VI,deleteTeams:zI}=En.actions,BI=t=>t.teamReducer.instances,vn=o.createSelector([BI],t=>Object.values(t)),jI=t=>s=>s.teamReducer.instances[t],qI=S(o.createSelector([vn,(t,s)=>s],(t,s)=>{const e=new Set(s);return T(t.filter(({uuid:n})=>e.has(n)))})),bF=S(o.createSelector([vn,(t,s)=>s],(t,s)=>T(t.filter(e=>e.organization===s)))),DI=En.reducer,_F={version:0},$I=o.createSlice({name:"versioning",initialState:_F,reducers:{}}),UI=$I.reducer,Vn={outboxReducer:iT,fileReducer:_h,authReducer:zo},MF=o.combineReducers(Vn),CI={...Vn,[lt]:UI,assetReducer:Ur,assetAttachmentReducer:ga,assetStageCompletionReducer:Jr,assetStageReducer:ou,assetTypeReducer:Ao,assetTypeAttachmentReducer:_u,issueReducer:$p,issueAttachmentReducer:Qy,issueTypeReducer:kf,issueTypeAttachmentReducer:Qp,organizationReducer:XS,projectReducer:aI,projectAttachmentReducer:ET,projectAccessReducer:yT,organizationAccessReducer:zS,projectFileReducer:YT,rehydratedReducer:uI,formReducer:jm,formRevisionReducer:gm,formRevisionAttachmentReducer:ym,formSubmissionAttachmentReducer:Jm,formSubmissionReducer:uy,formIdentifierReducer:Ch,formIdentifierValueReducer:em,userReducer:IS,emailDomainsReducer:Oh,documentsReducer:nh,documentAttachmentReducer:Ko,teamReducer:DI,agentsReducer:oa,issueCommentReducer:bp,issueCommentAttachmentReducer:hp,issueUpdateReducer:oS,geoImageReducer:Fy,issueAssociationReducer:Uy,issueTypeFieldsReducer:CA,issueTypeFieldValuesReducer:_A,issueTypeFieldsAttachmentReducer:hA,issueTypeFieldValuesAttachmentReducer:xA,issueTypeIdentifierReducer:yf,issueTypeIdentifierValueReducer:Rf,issueTypeStatusReducer:tS,assetTypeFieldsReducer:el,assetTypeFieldValuesReducer:Ml,assetTypeFieldsAttachmentReducer:Cu,assetTypeFieldValuesAttachmentReducer:ml,assetTypeIdentifierReducer:Ll,assetTypeIdentifierValueReducer:to,assetTypeStatusReducer:Eo,assetProcedureTypeReducer:ud,assetProcedureReducer:Yc,assetProcedureTypeFieldsReducer:uc,assetProcedureTypeFieldValuesReducer:qc,assetProcedureTypeFieldsAttachmentReducer:Za,assetProcedureTypeFieldValuesAttachmentReducer:Oc,assetProcedureTypeAttachmentReducer:ja,assetProcedureStepFieldsAttachmentReducer:_d,assetProcedureStepFieldsReducer:Ud,assetProcedureStepFieldValuesAttachmentReducer:Qd,assetProcedureStepFieldValuesReducer:hr,assetProcedureStepReducer:Fr,teamMembershipReducer:II},RF=o.combineReducers(CI),LI=1e4,kI=200,zn=[400,409,403,404,405,500],k=1e4,NI={};class GI{constructor(s){y(this,"client");y(this,"pageSize",LI);NI[this.constructor.name]=this,this.client=s}async performRequest(s,e){return this.client.performRequest(this.host,s,this,e)}async enqueueRequest(s){return this.client.enqueueRequest(s,this.host,this.constructor.name)}async performPagination(s,e){return this.client.performPagination(this.host,s,this.pageSize,this,e)}dispatch(s){this.client.store.dispatch(s)}}const HI=()=>YI.length-1,WI=t=>(t[lt]={version:HI()},t),KI=()=>WI({}),wF=t=>(t.outboxReducer&&(t.outboxReducer.deletedRequests=[]),t),EF=t=>s=>{var e;return s===void 0&&(s={}),((e=s[lt])==null?void 0:e.version)===HI()?s:t(s)},YI=[WI,KI,KI,wF],vF=Object.fromEntries(YI.map((t,s)=>[s,EF(t)])),VF=t=>{if(t)throw t;const s=ut();s?s.dispatch({type:"rehydrated/setRehydrated",payload:!0}):console.error("Client store not set")},ZI=(t,s,e)=>{const n=it();return n?(n.addRequest(s),n.getQueue()):(console.warn("Outbox coordinator not set; cannot enqueue request yet."),[])},JI=(t,s,e)=>{const n=it();if(!n)return console.warn("Outbox coordinator not set; cannot dequeue request yet."),[];const c=s.meta.offlineAction.payload.uuid;return n.remove(c),n.getQueue()};async function zF(t,s){if(!s.payload)throw new Error("Received empty payload");return uO(s)}const BF={...Ln,effect:zF,discard:QI,returnPromises:!0,persistCallback:VF,retry:$F,persistOptions:{storage:AO},queue:{...Ln.queue,enqueue:ZI,dequeue:JI,peek:(...t)=>DF(...t)}},jF=fO(vF,lt),qF=o.compose(pO.offline(BF),jF);async function XI(t,s,e){if(s.store.getState().outboxReducer.deletedRequests.includes(t.payload.uuid))throw new Error("Request was marked for deletion");const a=NI[t.meta.offline.effect.serviceName];if(!a)throw new Error(`Service ${t.meta.offline.effect.serviceName} not found`);return Dn(t.meta.offline.effect.BASE_URL,t.meta.offline.effect.request,s,a,e)}function QI(t,s,e=0){var d;if(console.debug("Considering discarding request due to error:",t,`(${typeof t})`,`
3
+ Url:`,s.payload.url,`
4
+ Retries:`,e),!(t instanceof Error))throw console.error("ENCOUNTERED NON-ERROR ERROR:",t,"(throwing immediately, which may lead to unexpected behavior)"),t;const n=ut(),c=n.getState().outboxReducer.deletedRequests,r=s.payload.uuid;function l(){n.dispatch(tT(r));const h=it();if(!h)throw new Error("Outbox coordinator not set");h.remove(s.payload.uuid);const p=s.meta.offline.rollback;throw p&&(console.warn("Rolling back request due to SDK error:",s),n.dispatch(p)),t}if(t instanceof C&&t.options.discard&&(console.debug("Discarding request due to explicit discard:",s.payload.url),l()),c.includes(r)&&(console.debug("Discarding request due to deletion:",s.payload.url),l()),t instanceof C){const h=t.status||((d=t.response)==null?void 0:d.status);if(h||console.warn("Error has no status code:",t),h!==void 0&&zn.includes(h)){console.warn("Discarding request due to error:",t,`
5
+ Action:`,s);const p=it();if(!p)throw new Error("Outbox coordinator not set");p.remove(s.payload.uuid),t.options.discard=!0,l()}}console.debug("Registering a retry for request:",s.payload.uuid);const u=it();if(!u)throw new Error("Outbox coordinator not set");return u.registerRetry(s.payload.uuid),!1}function DF(t,s,e){var n;return(n=it())==null?void 0:n.peek()}function $F(t,s){return ut().dispatch(sT(new Date().getTime())),Yn}const ct="An unknown error occurred",UF=500,xI=["non_field_errors","detail"];function CF(t,s){let e;if(t!=null&&t.body)if(typeof t.body=="object"){const n=t.body;if(typeof n.error=="string")e=n.error;else if(typeof n.message=="string")e=n.message;else try{e=Object.entries(n).map(([a,c])=>typeof c=="string"?xI.includes(a)?c:`${a}: ${c}`:Array.isArray(c)?xI.includes(a)?c.join(`
6
+ `):c.map(r=>`${a}: ${r}`).join(`
7
+ `):`${a}: ${JSON.stringify(c)}`).join(`
8
+ `)}catch(a){console.error("Failed to extract error message from response body",a)}}else typeof t.body=="string"&&(e=t.body);else t!=null&&t.text?e=t.text:s instanceof Error&&(e=s.message);return!e||e.length>UF?ct:e}class C extends Error{constructor(e){super(ct);y(this,"status");y(this,"response");y(this,"message");y(this,"options");const{response:n,innerError:a}=e;this.message=e.message??CF(n,a)??ct,this.status=(n==null?void 0:n.status)??0,this.response=n,e.discard=e.discard??!1,this.options=e}}function eO(t){function s(e){return typeof e=="object"&&e!==null&&["ok","redirect","clientError","serverError","error"].every(a=>a in e)}if(s(t))return t;if(typeof t=="object"&&t!==null){const e=t;if(s(e.response))return e.response;if(e.response&&s(e.response.response))return e.response.response}}class LF extends GI{constructor(s){super(s)}}class st extends GI{constructor(e,n){super(e);y(this,"auth");this.auth=n}}class kF extends st{async startConversation(s,e){return this.enqueueRequest({description:"Start agent conversation",method:m.POST,url:"/agents/prompt/",payload:{prompt:s,active_project:e},blockers:["prompt"],blocks:["prompt"]}).then(n=>(this.dispatch(ra(n)),n))}async continueConversation(s,e,n){return this.enqueueRequest({description:"Prompt agent",method:m.POST,url:"/agents/prompt/",payload:{prompt:s,active_project:n},blockers:["prompt"],blocks:["prompt"],queryParams:{conversation_id:e}}).then(a=>{this.dispatch(la(a))})}async fetchDetails(s){return this.enqueueRequest({description:"Get agent conversation",method:m.GET,url:`/agents/conversations/${s}/`,blockers:["conversation"],blocks:["conversation"]}).then(e=>{this.dispatch(ua(e))})}async rate(s,e){return this.enqueueRequest({description:"Rate agent response",method:m.PUT,url:`/agents/responses/${s}/rate/`,payload:{rating:e},blockers:["rate"],blocks:["rate"]})}async list(s,e){return this.performRequest({method:m.GET,url:"/agents/conversations/",...s},e)}async refreshStore(s,e){const n=await this.list({queryParams:{project:s}},e);return this.dispatch(da(n)),n}}function O(t,s,e){const n=`${s}${e?"s":""}`;switch(t){case m.GET:return`Get ${n}`;case m.POST:return`Create ${n}`;case m.PATCH:return`Update ${n}`;case m.PUT:return`Update ${n}`;case m.DELETE:return`Delete ${n}`}}class E extends st{async get(s,e){return this.performRequest({url:`${this.url}/${s}/`,method:m.GET},e)}async list(s,e){return this.performRequest({url:`${this.url}/`,method:m.GET,...s},e)}async listPaginated(s,e){return this.performPagination({url:`${this.url}/`,method:m.GET,...s},e)}}class Je extends E{constructor(){super(...arguments);y(this,"pageSize",kI)}async _bulkAdd(e){var f;const{store:n}=this.client,{addMany:a,updateMany:c,deleteMany:r}=this.actions,l=((f=n.getState().userReducer.currentUser)==null?void 0:f.id)??null,u=new Date().toISOString(),d=[],h=[],p={};for(const I of e){const{modelUuid:F,file:P}=I,g=await this.client.files.getFilePayload(P);g.sha1 in p||(p[g.sha1]=g);const b=this.buildModel({file:P,file_sha1:g.sha1,submitted_at:u,created_by:l,modelUuid:F});d.push(b),h.push(this.buildPayload(b,g))}this.dispatch(a(d));const A=this.enqueueRequest({description:O(m.POST,this.name,!0),method:m.POST,url:`${this.url}/bulk/`,payload:{submitted_at:u,attachments:h,files:Object.values(p)},blocks:d.map(I=>this.getId(I)),blockers:d.map(I=>I.file_sha1)});return A.then(({attachments:I,presigned_urls:F})=>{this.dispatch(c(I)),this.client.files.processPresignedUrls(F)}).catch(()=>{this.dispatch(r(d.map(I=>this.getId(I))))}),[d,A.then(({attachments:I})=>I)]}async _delete(e){const{store:n}=this.client,{addOne:a,deleteOne:c}=this.actions,{selectById:r}=this.selectors,l=r(e)(n.getState());if(!l)throw new Error(`Attempting to delete attachment with uuid ${e} that does not exist in the store`);this.dispatch(c(this.getId(l)));const u=this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]});return u.then(()=>{this.client.files.removeCache(l.file_sha1)}).catch(()=>{this.dispatch(a(l))}),u}}class NF extends Je{constructor(){super(...arguments);y(this,"name","Asset attachment");y(this,"url","/asset-attachments");y(this,"actions",{addOne:ya,addMany:xt,setOne:pa,setMany:Aa,updateOne:fa,updateMany:Sa,deleteOne:Ta,deleteMany:es,initialize:ma});y(this,"selectors",{selectById:Oa,selectByIds:Pa})}getId(e){return e.uuid}buildModel(e){return M({file:URL.createObjectURL(e.file),file_sha1:e.file_sha1,created_by:e.created_by,file_name:e.file.name,file_type:e.file.type,submitted_at:e.submitted_at,asset:e.modelUuid})}buildPayload(e,n){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:n.extension,asset:e.asset}}async bulkAdd(e){return this._bulkAdd(e.map(n=>({modelUuid:n.assetUuid,file:n.file})))}async delete(e){return this._delete(e)}async refreshStore(e,n){const{initialize:a}=this.actions,r=(await this.listPaginated({queryParams:{asset__project:e}},n)).flat();return this.dispatch(a(r)),r}}class GF extends Je{constructor(){super(...arguments);y(this,"name","Asset Procedure Attachment");y(this,"url","/asset-procedure-type-attachments");y(this,"actions",{addOne:Ma,addMany:Ra,setOne:wa,setMany:Ea,updateOne:va,updateMany:Va,deleteOne:za,deleteMany:Ba,initialize:_a});y(this,"selectors",{selectById:Da,selectByIds:$a})}getId(e){return e.uuid}buildModel(e){return M({file:URL.createObjectURL(e.file),file_sha1:e.file_sha1,created_by:e.created_by,file_name:e.file.name,file_type:e.file.type,submitted_at:e.submitted_at,asset_procedure_type:e.modelUuid})}buildPayload(e,n){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:n.extension,asset_procedure_type:e.asset_procedure_type}}async bulkAdd(e){return this._bulkAdd(e.map(n=>({modelUuid:n.assetProcedureTypeUuid,file:n.file})))}async delete(e){return this._delete(e)}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{asset_procedure_type__organization:e}},n);return this.dispatch(a(c)),c}}class HF extends E{constructor(){super(...arguments);y(this,"name","Asset Procedure Type Fields Attachment");y(this,"url","/asset-procedure-type-fields-attachments");y(this,"actions",{addOne:La,addMany:ka,setOne:Na,setMany:Ga,updateOne:Ha,updateMany:Wa,deleteOne:Ka,deleteMany:Ya,initialize:Ca});y(this,"selectors",{selectById:Xa,selectByIds:Qa})}async bulkAdd(e){var A;const{addMany:n,setMany:a,deleteMany:c}=this.actions,r=new Date().toISOString(),l=((A=this.client.store.getState().userReducer.currentUser)==null?void 0:A.id)??null,u={},d=[],h=[];for(const f of e){const{fieldsRevisionUuid:I,fieldIdentifier:F,file:P}=f,g=await this.client.files.getFilePayload(P);g.sha1 in u||(u[g.sha1]=g);const b=M({file:URL.createObjectURL(P),file_type:P.type,file_name:P.name,file_sha1:g.sha1,created_by:l,fields_revision:I,submitted_at:r,field_identifier:F});d.push(b);const v={uuid:b.uuid,file_name:P.name,field_identifier:F,file_extension:g.extension,file_sha1:g.sha1,fields_revision:I};h.push(v)}this.dispatch(n(d));const p=this.enqueueRequest({description:O(m.POST,this.name,!0),method:m.POST,url:`${this.url}/bulk/`,payload:{submitted_at:r,attachments:h,files:Object.values(u)},blockers:d.map(f=>f.fields_revision),blocks:d.map(f=>f.uuid)});return p.then(f=>{this.client.files.processPresignedUrls(f.presigned_urls),this.dispatch(a(f.attachments))}).catch(()=>{this.dispatch(c(d.map(f=>f.uuid)))}),[d,p.then(({attachments:f})=>f)]}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{fields_revision__asset_procedure_type__organization:e}},n);return this.dispatch(a(c)),c}}class WF extends E{constructor(){super(...arguments);y(this,"name","Asset Procedure Type Fields");y(this,"url","/asset-procedure-type-fields");y(this,"actions",{addOne:tc,addMany:sc,setOne:ic,setMany:nc,updateOne:ac,updateMany:cc,deleteOne:dc,deleteMany:rc,initialize:ec});y(this,"selectors",{selectById:oc,selectByIds:hc})}add(e){var p;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,l=((p=n.getState().userReducer.currentUser)==null?void 0:p.id)??null,u=new Date().toISOString(),d=M({...e,created_by:l,submitted_at:u});this.dispatch(a(d));const h=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(d),blockers:[d.asset_procedure_type],blocks:[d.uuid]});return h.then(A=>{this.dispatch(c(A))}).catch(A=>{throw this.dispatch(r(d.uuid)),A}),[d,h]}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{asset_procedure_type__organization:e}},n);return this.dispatch(a(c)),c}}function Xe(t,s){const e=[];let n=0;const a=t.length;for(;n<a;)e.push(t.slice(n,n+=s));return e}class KF extends E{constructor(){super(...arguments);y(this,"name","Asset Procedure Type Field Values Attachment");y(this,"url","/asset-procedure-type-field-values-attachments");y(this,"actions",{addOne:pc,addMany:rs,setOne:Ac,setMany:fc,updateOne:Sc,updateMany:Tc,deleteOne:Ic,deleteMany:us,initialize:yc});y(this,"selectors",{selectById:Fc,selectByIds:gc})}async bulkAdd(e,n){var f;const{addMany:a,setMany:c,deleteMany:r}=this.actions,l=new Date().toISOString(),u=((f=this.client.store.getState().userReducer.currentUser)==null?void 0:f.id)??null,d=Xe(e,Math.min(n??e.length,k)),h=[],p=[];for(const I of d){const F={},P=[];for(const g of I){const{fieldValuesUuid:b,fieldIdentifier:v,file:B}=g,V=await this.client.files.getFilePayload(B);V.sha1 in F||(F[V.sha1]=V);const $=M({file:URL.createObjectURL(B),file_type:B.type,file_name:B.name,file_sha1:V.sha1,created_by:u,field_values:b,submitted_at:l,field_identifier:v});h.push($);const j={uuid:$.uuid,file_name:B.name,file_sha1:V.sha1,file_extension:V.extension,field_identifier:v,field_values:b};P.push(j)}p.push({submitted_at:l,attachments:P,files:Object.values(F)})}this.dispatch(a(h));const A=p.map(I=>this.enqueueRequest({description:O(m.POST,this.name,!0),method:m.POST,url:`${this.url}/bulk/`,payload:I,blockers:I.attachments.map(F=>F.field_values),blocks:I.attachments.map(F=>F.uuid)}));return Promise.all(A).then(I=>{for(const P of I)this.client.files.processPresignedUrls(P.presigned_urls);const F=I.flatMap(P=>P.attachments);this.dispatch(c(F))}).catch(I=>{throw this.dispatch(r(h.map(F=>F.uuid))),I}),[h,A.map(I=>I.then(({attachments:F})=>F))]}async bulkDelete(e){const{store:n}=this.client,{deleteMany:a,addMany:c}=this.actions,{selectByIds:r}=this.selectors,l=n.getState(),u=r(e)(l);this.dispatch(a(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!0),method:m.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(d){throw this.dispatch(c(u)),d}}async refreshStore(e,n){const{initialize:a}=this.actions,r=(await this.listPaginated({queryParams:{field_values__asset_procedure__project:e,latest:!0}},n)).flat();return this.dispatch(a(r)),r}}class YF extends E{constructor(){super(...arguments);y(this,"name","Asset Procedure Type Field Values");y(this,"url","/asset-procedure-type-field-values");y(this,"actions",{addOne:Rc,addMany:wc,setOne:Ec,setMany:vc,updateOne:Vc,updateMany:zc,deleteOne:Bc,deleteMany:jc,initialize:Mc});y(this,"selectors",{selectById:$c,selectByIds:Uc})}add(e){var A;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,u=((A=n.getState().userReducer.currentUser)==null?void 0:A.id)??null,d=new Date().toISOString(),h=M({...e,created_by:u,submitted_at:d}),p=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(h),blockers:[e.asset,e.fields_revision,e.asset_procedure],blocks:[h.uuid]});return this.dispatch(a(h)),p.then(f=>{this.dispatch(c(f))}).catch(()=>{this.dispatch(r(h.uuid))}),[h,p]}bulkAdd(e,n){var F;const{values:a,payloads:c}=e,{addMany:r,setMany:l,deleteMany:u}=this.actions,d=new Date().toISOString(),h=((F=this.client.store.getState().userReducer.currentUser)==null?void 0:F.id)??null,p=[],A=Xe(c,Math.min(n??c.length,k)),f=[];for(const P of A){const g=[];for(const b of P){const v=M({...b,values:b.values,created_by:h,submitted_at:d});p.push(v),g.push({uuid:v.uuid,asset:b.asset,fields_revision:b.fields_revision,asset_procedure:b.asset_procedure,published_at:b.published_at,values:v.values})}f.push({submitted_at:d,values:a,field_values:g})}this.dispatch(r(p));const I=[];for(const P of f){const{field_values:g}=P,b=g.map(({asset:j})=>j),v=g.map(({fields_revision:j})=>j),B=g.map(({asset_procedure:j})=>j),V=g.map(({uuid:j})=>j),$=this.enqueueRequest({description:O(m.POST,this.name,!0),method:m.POST,url:`${this.url}/bulk/`,payload:P,blockers:b.concat(v).concat(B),blocks:V});I.push($)}return Promise.all(I).then(P=>{this.dispatch(l(P.flat()))}).catch(()=>{this.dispatch(u(q(p)))}),[p,I]}update(e){const{store:n}=this.client,{setOne:a}=this.actions,{selectById:c}=this.selectors,r=n.getState(),l=c(e.uuid)(r);if(!l)throw new Error(`Expected AssetProcedureTypeFieldValues with uuid ${e.uuid} to exist`);const u={...l,...e};this.dispatch(a(u));const d=this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[u.fields_revision,u.asset,u.asset_procedure],blocks:[u.uuid]});return d.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(a(l))}),[u,d]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,{selectById:r}=this.selectors,l=n.getState(),u=r(e)(l);if(!u)throw new Error(`Expected submission with uuid ${e} to exist`);const d=bc(e)(l);this.dispatch(a(e)),this.dispatch(us(q(d)));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(h){throw this.dispatch(c(u)),this.dispatch(rs(d)),h}}async refreshStore(e,n){const{initialize:a}=this.actions,r=(await this.listPaginated({queryParams:{asset_procedure__project:e,latest:!0}},n)).flat();return this.dispatch(a(r)),r}}class ZF extends E{constructor(){super(...arguments);y(this,"name","Asset Procedure");y(this,"url","/asset-procedures");y(this,"actions",{addOne:kc,addMany:ms,setOne:Wc,setMany:Kc,updateOne:Nc,updateMany:Gc,deleteOne:Hc,deleteMany:ys,initialize:Lc});y(this,"selectors",{selectById:Xc,selectByIds:Qc})}add(e){var p;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,l=((p=n.getState().userReducer.currentUser)==null?void 0:p.id)??null,u=new Date().toISOString(),d=M({...e,created_by:l,submitted_at:u});this.dispatch(a(d));const h=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(d),blockers:[e.asset_procedure_type,e.asset_type],blocks:[d.uuid]});return h.then(A=>{this.dispatch(c(A))}).catch(()=>{this.dispatch(r(d.uuid))}),[d,h]}update(e){const{store:n}=this.client,{setOne:a}=this.actions,{selectById:c}=this.selectors,r=c(e.uuid)(n.getState());if(!r)throw new Error(`Expected asset procedure with uuid ${e.uuid} to exist`);const l={...r,...e};this.dispatch(a(l));const u=this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[r.uuid],blocks:[r.uuid]});return u.then(d=>{this.dispatch(a(d))}).catch(()=>{this.dispatch(a(r))}),[l,u]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,{selectById:r}=this.selectors,l=n.getState(),u=r(e)(l);if(!u)throw new Error(`Expected asset procedure with uuid ${e} to exist`);this.dispatch(a(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(c(u)),d}}async refreshStore(e,n){const{initialize:a}=this.actions,r=(await this.listPaginated({queryParams:{project:e}},n)).flat();return this.dispatch(a(r)),r}}class JF extends E{constructor(){super(...arguments);y(this,"name","Asset Procedure Type");y(this,"url","/asset-procedure-types");y(this,"actions",{addOne:td,addMany:sd,setOne:dd,setMany:rd,updateOne:id,updateMany:nd,deleteOne:ad,deleteMany:cd,initialize:ed});y(this,"selectors",{selectById:od,selectByIds:hd})}add(e){var p;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,l=((p=n.getState().userReducer.currentUser)==null?void 0:p.id)??null,u=new Date().toISOString(),d=M({...e,created_by:l,submitted_at:u});this.dispatch(a(d));const h=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(d),blockers:[],blocks:[d.uuid]});return h.then(A=>{this.dispatch(c(A))}).catch(()=>{this.dispatch(r(d.uuid))}),[d,h]}update(e){const{store:n}=this.client,{setOne:a}=this.actions,{selectById:c}=this.selectors,r=c(e.uuid)(n.getState());if(!r)throw new Error(`Expected asset procedure type with uuid ${e.uuid} to exist`);const l={...r,...e};this.dispatch(a(l));const u=this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[r.uuid],blocks:[r.uuid]});return u.then(d=>{this.dispatch(a(d))}).catch(()=>{this.dispatch(a(r))}),[l,u]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,{selectById:r}=this.selectors,l=n.getState(),u=r(e)(l);if(!u)throw new Error(`Expected asset procedure type with uuid ${e} to exist`);const d=Jc(e)(l);this.dispatch(a(e)),this.dispatch(ys(q(d)));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(h){throw this.dispatch(c(u)),this.dispatch(ms(d)),h}}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{organization:e}},n);return this.dispatch(a(c)),c}}class XF extends E{constructor(){super(...arguments);y(this,"name","Asset Procedure Step Fields Attachment");y(this,"url","/asset-procedure-step-fields-attachments");y(this,"actions",{addOne:pd,addMany:Ad,setOne:fd,setMany:Sd,updateOne:Td,updateMany:Id,deleteOne:Od,deleteMany:Pd,initialize:yd});y(this,"selectors",{selectById:gd,selectByIds:bd})}async bulkAdd(e){var A;const{addMany:n,setMany:a,deleteMany:c}=this.actions,r=new Date().toISOString(),l=((A=this.client.store.getState().userReducer.currentUser)==null?void 0:A.id)??null,u={},d=[],h=[];for(const f of e){const{fieldsRevisionUuid:I,fieldIdentifier:F,file:P}=f,g=await this.client.files.getFilePayload(P);g.sha1 in u||(u[g.sha1]=g);const b=M({file:URL.createObjectURL(P),file_type:P.type,file_name:P.name,file_sha1:g.sha1,created_by:l,fields_revision:I,submitted_at:r,field_identifier:F});d.push(b);const v={uuid:b.uuid,file_name:P.name,field_identifier:F,file_extension:g.extension,file_sha1:g.sha1,fields_revision:I};h.push(v)}this.dispatch(n(d));const p=this.enqueueRequest({description:O(m.POST,this.name,!0),method:m.POST,url:`${this.url}/bulk/`,payload:{submitted_at:r,attachments:h,files:Object.values(u)},blockers:d.map(f=>f.fields_revision),blocks:d.map(f=>f.uuid)});return p.then(f=>{this.client.files.processPresignedUrls(f.presigned_urls),this.dispatch(a(f.attachments))}).catch(()=>{this.dispatch(c(d.map(f=>f.uuid)))}),[d,p.then(({attachments:f})=>f)]}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{fields_revision__asset_procedure_step__organization:e}},n);return this.dispatch(a(c)),c}}class QF extends E{constructor(){super(...arguments);y(this,"name","Asset Procedure Step Fields");y(this,"url","/asset-procedure-step-fields");y(this,"actions",{addOne:wd,addMany:Ed,setOne:vd,setMany:Vd,updateOne:zd,updateMany:Bd,deleteOne:jd,deleteMany:qd,initialize:Rd});y(this,"selectors",{selectById:Dd,selectByIds:$d})}add(e){var p;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,l=((p=n.getState().userReducer.currentUser)==null?void 0:p.id)??null,u=new Date().toISOString(),d=M({...e,created_by:l,submitted_at:u});this.dispatch(a(d));const h=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(d),blockers:[d.asset_procedure_step],blocks:[d.uuid]});return h.then(A=>{this.dispatch(c(A))}).catch(A=>{throw this.dispatch(r(d.uuid)),A}),[d,h]}update(e){const{store:n}=this.client,{setOne:a}=this.actions,c=n.getState().assetProcedureStepFieldsReducer.instances[e.uuid];if(!c)throw new Error(`AssetProcedureStepFields with uuid ${e.uuid} not found`);const r={...c,...e};this.dispatch(a(r));const l=this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${c.uuid}/`,payload:e,blockers:[c.uuid],blocks:[c.uuid]});return l.then(u=>{this.dispatch(a(u))}).catch(u=>{throw this.dispatch(a(c)),u}),[r,l]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,r=n.getState().assetProcedureStepFieldsReducer.instances[e];if(!r)throw new Error(`AssetProcedureStepFields with uuid ${e} not found`);this.dispatch(a(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[e]})}catch(l){throw this.dispatch(c(r)),l}}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{asset_procedure_step__asset_procedure_type__organization:e}},n);return this.dispatch(a(c)),c}}class xF extends E{constructor(){super(...arguments);y(this,"name","Asset Procedure Step Field Values Attachment");y(this,"url","/asset-procedure-step-field-values-attachments");y(this,"actions",{addOne:kd,addMany:Ps,setOne:Nd,setMany:Gd,updateOne:Hd,updateMany:Wd,deleteOne:Kd,deleteMany:Fs,initialize:Ld});y(this,"selectors",{selectById:Zd,selectByIds:Jd})}async bulkAdd(e,n){var f;const{addMany:a,setMany:c,deleteMany:r}=this.actions,l=new Date().toISOString(),u=((f=this.client.store.getState().userReducer.currentUser)==null?void 0:f.id)??null,d=Xe(e,Math.min(n??e.length,k)),h=[],p=[];for(const I of d){const F={},P=[];for(const g of I){const{fieldValuesUuid:b,fieldIdentifier:v,file:B}=g,V=await this.client.files.getFilePayload(B);V.sha1 in F||(F[V.sha1]=V);const $=M({file:URL.createObjectURL(B),file_type:B.type,file_name:B.name,file_sha1:V.sha1,created_by:u,field_values:b,submitted_at:l,field_identifier:v});h.push($);const j={uuid:$.uuid,file_name:B.name,file_sha1:V.sha1,file_extension:V.extension,field_identifier:v,field_values:b};P.push(j)}p.push({submitted_at:l,attachments:P,files:Object.values(F)})}this.dispatch(a(h));const A=p.map(I=>this.enqueueRequest({description:O(m.POST,this.name,!0),method:m.POST,url:`${this.url}/bulk/`,payload:I,blockers:I.attachments.map(F=>F.field_values),blocks:I.attachments.map(F=>F.uuid)}));return Promise.all(A).then(I=>{for(const P of I)this.client.files.processPresignedUrls(P.presigned_urls);const F=I.flatMap(P=>P.attachments);this.dispatch(c(F))}).catch(I=>{throw this.dispatch(r(h.map(F=>F.uuid))),I}),[h,A.map(I=>I.then(({attachments:F})=>F))]}async bulkDelete(e){const{store:n}=this.client,{deleteMany:a,addMany:c}=this.actions,{selectByIds:r}=this.selectors,l=n.getState(),u=r(e)(l);this.dispatch(a(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!0),method:m.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(d){throw this.dispatch(c(u)),d}}async refreshStore(e,n){const{initialize:a}=this.actions,r=(await this.listPaginated({queryParams:{field_values__asset_procedure__project:e,latest:!0}},n)).flat();return this.dispatch(a(r)),r}}class eg extends E{constructor(){super(...arguments);y(this,"name","Asset Procedure Step Field Values");y(this,"url","/asset-procedure-step-field-values");y(this,"actions",{addOne:tr,addMany:sr,setOne:ir,setMany:nr,updateOne:ar,updateMany:cr,deleteOne:dr,deleteMany:rr,initialize:er});y(this,"selectors",{selectById:lr,selectByIds:or})}add(e){var A;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,u=((A=n.getState().userReducer.currentUser)==null?void 0:A.id)??null,d=new Date().toISOString(),h=M({...e,created_by:u,submitted_at:d}),p=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(h),blockers:[e.asset,e.fields_revision,e.asset_procedure],blocks:[h.uuid]});return this.dispatch(a(h)),p.then(f=>{this.dispatch(c(f))}).catch(()=>{this.dispatch(r(h.uuid))}),[h,p]}bulkAdd(e,n){var F;const{payloads:a,values:c}=e,{addMany:r,setMany:l,deleteMany:u}=this.actions,d=new Date().toISOString(),h=((F=this.client.store.getState().userReducer.currentUser)==null?void 0:F.id)??null,p=[],A=Xe(a,Math.min(n??a.length,k)),f=[];for(const P of A){const g=[];for(const b of P){const v=M({...b,values:b.values,created_by:h,submitted_at:d});p.push(v),g.push({uuid:v.uuid,asset:b.asset,fields_revision:b.fields_revision,asset_procedure:b.asset_procedure,asset_procedure_step:b.asset_procedure_step,published_at:b.published_at,values:v.values})}f.push({submitted_at:d,values:c,field_values:g})}this.dispatch(r(p));const I=[];for(const P of f){const{field_values:g}=P,b=g.map(({asset:j})=>j),v=g.map(({fields_revision:j})=>j),B=g.map(({asset_procedure:j})=>j),V=g.map(({uuid:j})=>j),$=this.enqueueRequest({description:O(m.POST,this.name,!0),method:m.POST,url:`${this.url}/bulk/`,payload:P,blockers:b.concat(v).concat(B),blocks:V});I.push($)}return Promise.all(I).then(P=>{this.dispatch(l(P.flat()))}).catch(()=>{this.dispatch(u(q(p)))}),[p,I]}update(e){const{store:n}=this.client,{setOne:a}=this.actions,{selectById:c}=this.selectors,r=n.getState(),l=c(e.uuid)(r);if(!l)throw new Error(`Expected AssetProcedureStepFieldValues with uuid ${e.uuid} to exist`);const u={...l,...e};this.dispatch(a(u));const d=this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[u.fields_revision,u.asset,u.asset_procedure],blocks:[u.uuid]});return d.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(a(l))}),[u,d]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,{selectById:r}=this.selectors,l=n.getState(),u=r(e)(l);if(!u)throw new Error(`Expected submission with uuid ${e} to exist`);const d=Xd(e)(l);this.dispatch(a(e)),this.dispatch(Fs(q(d)));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(h){throw this.dispatch(c(u)),this.dispatch(Ps(d)),h}}async refreshStore(e,n){const{initialize:a}=this.actions,r=(await this.listPaginated({queryParams:{asset_procedure__project:e,latest:!0}},n)).flat();return this.dispatch(a(r)),r}}class tg extends E{constructor(){super(...arguments);y(this,"name","Asset Procedure Step");y(this,"url","/asset-procedure-steps");y(this,"actions",{addOne:fr,addMany:Sr,setOne:pr,setMany:Ar,updateOne:Tr,updateMany:Ir,deleteOne:Or,deleteMany:Pr,initialize:yr});y(this,"selectors",{selectById:gr,selectByIds:br})}add(e){var p;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,l=((p=n.getState().userReducer.currentUser)==null?void 0:p.id)??null,u=new Date().toISOString(),d=M({...e,created_by:l,submitted_at:u});this.dispatch(a(d));const h=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(d),blockers:[d.asset_procedure_type],blocks:[d.uuid]});return h.then(A=>{this.dispatch(c(A))}).catch(()=>{this.dispatch(r(d.uuid))}),[d,h]}update(e){const{store:n}=this.client,{setOne:a}=this.actions,{selectById:c}=this.selectors,r=c(e.uuid)(n.getState());if(!r)throw new Error(`No asset procedure step with uuid ${e.uuid} found in the store`);const l={...r,...e};this.dispatch(a(l));const u=this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${r.uuid}/`,payload:{name:e.name,description:e.description,priority:e.order,color:e.color},blockers:[r.uuid],blocks:[r.uuid]});return u.then(d=>{this.dispatch(a(d))}).catch(()=>{this.dispatch(a(r))}),[l,u]}async delete(e){const{store:n}=this.client,{deleteMany:a,addMany:c,addOne:r,deleteOne:l}=this.actions,{selectById:u}=this.selectors,d=n.getState(),h=u(e)(d);if(!h)throw new Error(`No asset procedure step with uuid ${e} found in the store`);const p=_r(e)(d);this.dispatch(l(e)),this.dispatch(a(q(p)));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(A){throw this.dispatch(r(h)),this.dispatch(c(p)),A}}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{asset_procedure_type__organization:e}},n);return this.dispatch(a(c)),c}}class sg extends E{constructor(){super(...arguments);y(this,"url","/assets");y(this,"name","Asset");y(this,"actions",{addOne:wr,addMany:ws,setOne:zr,setMany:Br,updateOne:Er,updateMany:vr,deleteOne:Vr,deleteMany:Es,initialize:Rr});y(this,"selectors",{selectById:Dr,selectByIds:$r})}add(e){var p;const{store:n}=this.client,{addOne:a,updateOne:c,deleteOne:r}=this.actions,l=((p=n.getState().userReducer.currentUser)==null?void 0:p.id)??null,u=new Date().toISOString(),d=M({...e,created_by:l,submitted_at:u});this.dispatch(a(d));const h=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(d),blockers:[d.asset_type],blocks:[d.uuid]});return h.then(A=>{this.dispatch(c(A))}).catch(()=>{this.dispatch(r(d.uuid))}),[d,h]}update(e){const{store:n}=this.client,{updateOne:a}=this.actions,{selectById:c}=this.selectors,r=c(e.uuid)(n.getState());if(!r)throw new Error(`No asset with uuid ${e.uuid} found in the store`);const l={...r,...e};this.dispatch(a(l));const u=this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return u.then(d=>{this.dispatch(a(d))}).catch(()=>{this.dispatch(a(r))}),[l,u]}async delete(e){const{store:n}=this.client,{addOne:a,deleteOne:c}=this.actions,{selectById:r}=this.selectors,l=n.getState(),u=r(e)(l);if(!u)throw new Error(`No asset with uuid ${e} found in the store`);const d=Fa(e)(l),h=$y(e)(l);this.dispatch(c(e)),this.dispatch(es(q(d))),this.dispatch(tt(q(h)));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(p){throw this.dispatch(a(u)),this.dispatch(xt(d)),this.dispatch(et(h)),p}}bulkAdd(e,n){const{addMany:a}=this.actions,c=new Date().toISOString(),r=Qe.v4(),l=Xe(e,Math.min(n??e.length,k)).map(h=>{const p=h.map(A=>M(A));return{batchId:Qe.v4(),payload:{transaction_id:r,submitted_at:c,assets:p}}}),u=[];let d=null;for(const h of l){const{batchId:p,payload:A}=h,f=A.assets.map(({uuid:b})=>b),I=A.assets.map(({asset_type:b})=>b),F=A.assets.map(({project:b})=>b),P=A.assets.map(({status:b})=>b),g=this.enqueueRequest({description:O(m.POST,this.name,!0),method:m.POST,url:`${this.url}/bulk/`,payload:A,blockers:(d?[d]:[]).concat(I).concat(F).concat(P),blocks:[p].concat(f)});d=h.batchId,u.push(g)}return Promise.all(u).then(h=>{const p=h.flat();this.dispatch(a(p))}),u}bulkUpdate(e,n){const{store:a}=this.client,{updateMany:c}=this.actions,{selectByIds:r}=this.selectors,l=q(e).toSorted(St);if(l.length!==e.length)throw new Error("payloads contains duplicate uuids.");const u=r(l)(a.getState()).toSorted(Zt);if(l.length!=u.length)throw new Error(`Attempting to bulk update ${l.length-u.length} assets that dont exist in the store`);const d=[];for(let f=0;f<l.length;f++)d.push({...u[f],...e[f]});this.dispatch(c(d));const h=Xe(e,Math.min(n??e.length,k)),p=[];let A=null;for(const f of h){const I=Qe.v4(),F=q(f),P=f.map(({status:b})=>b).filter(Boolean),g=this.enqueueRequest({description:O(m.PATCH,this.name,!0),method:m.PATCH,url:`${this.url}/bulk/`,payload:{payloads:f},blockers:(A?[A]:[]).concat(F).concat(P),blocks:[I].concat(F)});p.push(g),A=I}return Promise.all(p).then(f=>{this.dispatch(c(f.flat()))}).catch(()=>{this.dispatch(c(u))}),[d,p]}async bulkDelete(e){const{store:n}=this.client,{addMany:a,deleteMany:c}=this.actions,{selectByIds:r}=this.selectors,l=n.getState(),u=r(e)(l);this.dispatch(c(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!0),method:m.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(d){throw this.dispatch(a(u)),d}}async refreshStore(e,n){const{initialize:a}=this.actions,r=(await this.listPaginated({queryParams:{project:e}},n)).flat();return this.dispatch(a(r)),r}}class ig extends E{constructor(){super(...arguments);y(this,"name","Asset Stage Completion");y(this,"url","/asset-stage-completions");y(this,"actions",{addOne:kr,addMany:Nr,setOne:Gr,setMany:Hr,updateOne:Wr,updateMany:Kr,deleteOne:Yr,deleteMany:Zr,initialize:Lr});y(this,"selectors",{selectById:xr,selectByIds:eu})}add(e){var p;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,l=((p=n.getState().userReducer.currentUser)==null?void 0:p.id)??null,u=new Date().toISOString(),d=M({...e,created_by:l,submitted_at:u});this.dispatch(a(d));const h=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(d),blockers:[e.asset,e.asset_stage],blocks:[d.uuid]});return h.then(A=>{this.dispatch(c(A))}).catch(()=>{this.dispatch(r(d.uuid))}),[d,h]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,{selectById:r}=this.selectors,l=r(e)(n.getState());if(!l)throw new Error(`Expected asset stage completion with uuid ${e} to exist`);this.dispatch(a(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(u){throw this.dispatch(c(l)),u}}bulkAdd(e){var f;const{store:n}=this.client,{addMany:a,setMany:c,deleteMany:r}=this.actions,l=new Date().toISOString(),u=((f=n.getState().userReducer.currentUser)==null?void 0:f.id)??null,d=e.map(I=>M(I)),h=d.map(I=>({...I,created_by:u,submitted_at:l})),p=h.map(({uuid:I})=>I);this.dispatch(a(h));const A=this.enqueueRequest({description:O(m.POST,this.name,!0),method:m.POST,url:`${this.url}/bulk/`,payload:{submitted_at:l,completions:d},blockers:[...e.map(I=>I.asset_procedure),...e.map(I=>I.asset_stage),...e.map(I=>I.asset)],blocks:p});return A.then(I=>{this.dispatch(c(I))}).catch(()=>{this.dispatch(r(p))}),[h,A]}async bulkDelete(e){const{store:n}=this.client,{deleteMany:a,addMany:c}=this.actions,{selectByIds:r}=this.selectors,l=r(e)(n.getState());this.dispatch(a(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!0),method:m.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(u){throw this.dispatch(c(l)),u}}async refreshStore(e,n){const{initialize:a}=this.actions,r=(await this.listPaginated({queryParams:{asset_procedure__project:e}},n)).flat();return this.dispatch(a(r)),r}}class ng extends E{constructor(){super(...arguments);y(this,"name","Asset Stage");y(this,"url","/asset-stages");y(this,"actions",{addOne:au,addMany:cu,setOne:iu,setMany:nu,updateOne:du,updateMany:ru,deleteOne:uu,deleteMany:lu,initialize:su});y(this,"selectors",{selectById:hu,selectByIds:mu})}add(e){var p;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,l=((p=n.getState().userReducer.currentUser)==null?void 0:p.id)??null,u=new Date().toISOString(),d=M({...e,created_by:l,submitted_at:u});this.dispatch(a(d));const h=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(d),blockers:[d.asset_procedure_type],blocks:[d.uuid]});return h.then(A=>{this.dispatch(c(A))}).catch(()=>{this.dispatch(r(d.uuid))}),[d,h]}update(e){const{store:n}=this.client,{setOne:a}=this.actions,{selectById:c}=this.selectors,r=c(e.uuid)(n.getState());if(!r)throw new Error(`No asset stage with uuid ${e.uuid} found in the store`);const l={...r,...e};this.dispatch(a(l));const u=this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${r.uuid}/`,payload:e,blockers:[r.uuid],blocks:[r.uuid]});return u.then(d=>{this.dispatch(a(d))}).catch(()=>{this.dispatch(a(r))}),[l,u]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,{selectById:r}=this.selectors,l=n.getState(),u=r(e)(l);if(!u)throw new Error(`No asset stage with uuid ${e} found in the store`);this.dispatch(a(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(c(u)),d}}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{asset_procedure_type__organization:e}},n);return this.dispatch(a(c)),c}}class ag extends Je{constructor(){super(...arguments);y(this,"name","Asset Type Attachment");y(this,"url","/asset-type-attachments");y(this,"actions",{addOne:Au,addMany:qs,setOne:fu,setMany:Su,updateOne:Tu,updateMany:Iu,deleteOne:Ou,deleteMany:Ds,initialize:pu});y(this,"selectors",{selectById:Fu,selectByIds:gu})}getId(e){return e.uuid}buildModel(e){return M({file:URL.createObjectURL(e.file),file_sha1:e.file_sha1,created_by:e.created_by,file_name:e.file.name,file_type:e.file.type,submitted_at:e.submitted_at,asset_type:e.modelUuid})}buildPayload(e,n){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:n.extension,asset_type:e.asset_type}}async bulkAdd(e){return this._bulkAdd(e.map(n=>({modelUuid:n.assetTypeUuid,file:n.file})))}async delete(e){return this._delete(e)}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{asset_type__organization:e}},n);return this.dispatch(a(c)),c}}class cg extends E{constructor(){super(...arguments);y(this,"name","Asset Type Fields Attachment");y(this,"url","/asset-type-fields-attachments");y(this,"actions",{addOne:wu,addMany:Eu,setOne:vu,setMany:Vu,updateOne:zu,updateMany:Bu,deleteOne:ju,deleteMany:qu,initialize:Ru});y(this,"selectors",{selectById:$u,selectByIds:Uu})}async bulkAdd(e){var A;const{addMany:n,setMany:a,deleteMany:c}=this.actions,r=new Date().toISOString(),l=((A=this.client.store.getState().userReducer.currentUser)==null?void 0:A.id)??null,u={},d=[],h=[];for(const f of e){const{fieldsRevisionUuid:I,fieldIdentifier:F,file:P}=f,g=await this.client.files.getFilePayload(P);g.sha1 in u||(u[g.sha1]=g);const b=M({file:URL.createObjectURL(P),file_type:P.type,file_name:P.name,file_sha1:g.sha1,created_by:l,fields_revision:I,submitted_at:r,field_identifier:F});d.push(b);const v={uuid:b.uuid,file_name:P.name,field_identifier:F,file_extension:g.extension,file_sha1:g.sha1,fields_revision:I};h.push(v)}this.dispatch(n(d));const p=this.enqueueRequest({description:O(m.POST,this.name,!0),method:m.POST,url:`${this.url}/bulk/`,payload:{submitted_at:r,attachments:h,files:Object.values(u)},blockers:d.map(f=>f.fields_revision),blocks:d.map(f=>f.uuid)});return p.then(f=>{this.client.files.processPresignedUrls(f.presigned_urls),this.dispatch(a(f.attachments))}).catch(()=>{this.dispatch(c(d.map(f=>f.uuid)))}),[d,p.then(({attachments:f})=>f)]}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{fields_revision__asset_type__organization:e}},n);return this.dispatch(a(c)),c}}class dg extends E{constructor(){super(...arguments);y(this,"name","Asset Type Fields");y(this,"url","/asset-type-fields");y(this,"actions",{addOne:Nu,addMany:Gu,setOne:Hu,setMany:Wu,updateOne:Ku,updateMany:Yu,deleteOne:Zu,deleteMany:Ju,initialize:ku});y(this,"selectors",{selectById:Qu,selectByIds:xu})}add(e){var p;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,l=((p=n.getState().userReducer.currentUser)==null?void 0:p.id)??null,u=new Date().toISOString(),d=M({...e,created_by:l,submitted_at:u});this.dispatch(a(d));const h=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(d),blockers:[d.asset_type],blocks:[d.uuid]});return h.then(A=>{this.dispatch(c(A))}).catch(A=>{throw this.dispatch(r(d.uuid)),A}),[d,h]}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{asset_type__organization:e}},n);return this.dispatch(a(c)),c}}class rg extends E{constructor(){super(...arguments);y(this,"name","Asset Type Field Values Attachment");y(this,"url","/asset-type-field-values-attachments");y(this,"actions",{addOne:il,addMany:Ns,setOne:nl,setMany:al,updateOne:cl,updateMany:dl,deleteOne:rl,deleteMany:Gs,initialize:sl});y(this,"selectors",{selectById:ll,selectByIds:ol})}async bulkAdd(e,n){var f;const{addMany:a,setMany:c,deleteMany:r}=this.actions,l=new Date().toISOString(),u=((f=this.client.store.getState().userReducer.currentUser)==null?void 0:f.id)??null,d=Xe(e,Math.min(n??e.length,k)),h=[],p=[];for(const I of d){const F={},P=[];for(const g of I){const{fieldValuesUuid:b,fieldIdentifier:v,file:B}=g,V=await this.client.files.getFilePayload(B);V.sha1 in F||(F[V.sha1]=V);const $=M({file:URL.createObjectURL(B),file_type:B.type,file_name:B.name,file_sha1:V.sha1,created_by:u,field_values:b,submitted_at:l,field_identifier:v});h.push($);const j={uuid:$.uuid,file_name:B.name,file_sha1:V.sha1,file_extension:V.extension,field_identifier:v,field_values:b};P.push(j)}p.push({submitted_at:l,attachments:P,files:Object.values(F)})}this.dispatch(a(h));const A=p.map(I=>this.enqueueRequest({description:O(m.POST,this.name,!0),method:m.POST,url:`${this.url}/bulk/`,payload:I,blockers:I.attachments.map(F=>F.field_values),blocks:I.attachments.map(F=>F.uuid)}));return Promise.all(A).then(I=>{for(const P of I)this.client.files.processPresignedUrls(P.presigned_urls);const F=I.flatMap(P=>P.attachments);this.dispatch(c(F))}).catch(I=>{throw this.dispatch(r(h.map(F=>F.uuid))),I}),[h,A.map(I=>I.then(({attachments:F})=>F))]}async bulkDelete(e){const{store:n}=this.client,{deleteMany:a,addMany:c}=this.actions,{selectByIds:r}=this.selectors,l=n.getState(),u=r(e)(l);this.dispatch(a(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!0),method:m.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(d){throw this.dispatch(c(u)),d}}async refreshStore(e,n){const{initialize:a}=this.actions,r=(await this.listPaginated({queryParams:{field_values__asset__project:e,latest:!0}},n)).flat();return this.dispatch(a(r)),r}}class ug extends E{constructor(){super(...arguments);y(this,"name","Asset Type Field Values");y(this,"url","/asset-type-field-values");y(this,"actions",{addOne:Al,addMany:fl,setOne:Sl,setMany:Tl,updateOne:Il,updateMany:Ol,deleteOne:Pl,deleteMany:Fl,initialize:pl});y(this,"selectors",{selectById:bl,selectByIds:_l})}add(e){var A;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,u=((A=n.getState().userReducer.currentUser)==null?void 0:A.id)??null,d=new Date().toISOString(),h=M({...e,created_by:u,submitted_at:d}),p=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(h),blockers:[e.asset,e.fields_revision],blocks:[h.uuid]});return this.dispatch(a(h)),p.then(f=>{this.dispatch(c(f))}).catch(()=>{this.dispatch(r(h.uuid))}),[h,p]}bulkAdd(e,n){var I;const{payloads:a,values:c}=e,{addMany:r,setMany:l,deleteMany:u}=this.actions,d=new Date().toISOString(),h=[],p=Xe(a,Math.min(n??a.length,k)),A=[];for(const F of p){const P=[];for(const g of F){const b=M({...g,values:g.values,created_by:((I=this.client.store.getState().userReducer.currentUser)==null?void 0:I.id)??null,submitted_at:d});h.push(b),P.push({uuid:b.uuid,asset:g.asset,fields_revision:g.fields_revision,published_at:g.published_at,values:b.values})}A.push({submitted_at:d,values:c,field_values:P})}this.dispatch(r(h));const f=[];for(const F of A){const{field_values:P}=F,g=P.map(({asset:V})=>V),b=P.map(({fields_revision:V})=>V),v=P.map(({uuid:V})=>V),B=this.enqueueRequest({description:O(m.POST,this.name,!0),method:m.POST,url:`${this.url}/bulk/`,payload:F,blockers:g.concat(b),blocks:v});f.push(B)}return Promise.all(f).then(F=>{this.dispatch(l(F.flat()))}).catch(()=>{this.dispatch(u(q(h)))}),[h,f]}update(e){const{store:n}=this.client,{setOne:a}=this.actions,{selectById:c}=this.selectors,r=n.getState(),l=c(e.uuid)(r);if(!l)throw new Error(`Expected AssetTypeFieldValues with uuid ${e.uuid} to exist`);const u={...l,...e};this.dispatch(a(u));const d=this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[u.uuid,u.fields_revision,u.asset],blocks:[u.uuid]});return d.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(a(l))}),[u,d]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,{selectById:r}=this.selectors,l=n.getState(),u=r(e)(l);if(!u)throw new Error(`Expected submission with uuid ${e} to exist`);const d=hl(e)(l);this.dispatch(a(e)),this.dispatch(Gs(q(d)));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(h){throw this.dispatch(c(u)),this.dispatch(Ns(d)),h}}async refreshStore(e,n){const{initialize:a}=this.actions,r=(await this.listPaginated({queryParams:{asset__project:e,latest:!0}},n)).flat();return this.dispatch(a(r)),r}}class lg extends E{constructor(){super(...arguments);y(this,"name","Asset Type Identifier");y(this,"url","/asset-type-identifiers");y(this,"actions",{addOne:El,addMany:vl,setOne:Vl,setMany:zl,updateOne:Bl,updateMany:jl,deleteOne:ql,deleteMany:Dl,initialize:wl});y(this,"selectors",{selectById:Ul,selectByIds:Cl})}add(e){var p;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,l=((p=n.getState().userReducer.currentUser)==null?void 0:p.id)??null,u=new Date().toISOString(),d=M({...e,created_by:l,submitted_at:u});this.dispatch(a(d));const h=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(d),blockers:[d.asset_type],blocks:[d.uuid]});return h.then(A=>{this.dispatch(c(A))}).catch(()=>{this.dispatch(r(d.uuid))}),[d,h]}update(e){const{store:n}=this.client,{setOne:a}=this.actions,{selectById:c}=this.selectors,r=c(e.uuid)(n.getState());if(!r)throw new Error(`Expected asset type identifier with uuid ${e.uuid} to exist`);const l={...r,...e};this.dispatch(a(l));const u=this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return u.then(d=>{this.dispatch(a(d))}).catch(()=>{this.dispatch(a(r))}),[l,u]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,{selectById:r}=this.selectors,l=n.getState(),u=r(e)(l);if(!u)throw new Error(`Expected asset type identifier with uuid ${e} to exist`);this.dispatch(a(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(c(u)),d}}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{asset_type__organization:e}},n);return this.dispatch(a(c)),c}}class og extends E{constructor(){super(...arguments);y(this,"name","Asset Type Identifier Value");y(this,"url","/asset-type-identifier-values");y(this,"actions",{addOne:Gl,addMany:Hl,setOne:Wl,setMany:Kl,updateOne:Yl,updateMany:Zl,deleteOne:Jl,deleteMany:Xl,initialize:Nl});y(this,"selectors",{selectById:xl,selectByIds:eo})}add(e){var p;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,l=((p=n.getState().userReducer.currentUser)==null?void 0:p.id)??null,u=new Date().toISOString(),d=M({...e,created_by:l,submitted_at:u});this.dispatch(a(d));const h=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(d),blockers:[e.asset,e.asset_type_identifier],blocks:[d.uuid]});return h.then(A=>{this.dispatch(c(A))}).catch(()=>{this.dispatch(r(d.uuid))}),[d,h]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,{selectById:r}=this.selectors,l=n.getState(),u=r(e)(l);if(!u)throw new Error(`Expected asset type identifier value with uuid ${e} to exist`);this.dispatch(a(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(c(u)),d}}async refreshStore(e,n){const{initialize:a}=this.actions,r=(await this.listPaginated({queryParams:{asset__project:e,latest:!0}},n)).flat();return this.dispatch(a(r)),r}}class hg extends E{constructor(){super(...arguments);y(this,"name","Asset Type");y(this,"url","/asset-types");y(this,"actions",{addOne:co,addMany:ro,setOne:no,setMany:ao,updateOne:uo,updateMany:lo,deleteOne:oo,deleteMany:ho,initialize:io});y(this,"selectors",{selectById:yo,selectByIds:po})}add(e){var p;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,l=((p=n.getState().userReducer.currentUser)==null?void 0:p.id)??null,u=new Date().toISOString(),d=M({...e,created_by:l,submitted_at:u});this.dispatch(a(d));const h=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(d),blockers:[],blocks:[d.uuid]});return h.then(A=>{this.dispatch(c(A))}).catch(()=>{this.dispatch(r(d.uuid))}),[d,h]}update(e){const{store:n}=this.client,{setOne:a}=this.actions,{selectById:c}=this.selectors,r=c(e.uuid)(n.getState());if(!r)throw new Error(`Expected asset type with uuid ${e.uuid} to exist`);const l={...r,...e};this.dispatch(a(l));const u=this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[r.uuid],blocks:[r.uuid]});return u.then(d=>{this.dispatch(a(d))}).catch(()=>{this.dispatch(a(r))}),[l,u]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,{selectById:r}=this.selectors,l=n.getState(),u=r(e)(l);if(!u)throw new Error(`Expected asset type with uuid ${e} to exist`);const d=qr(e)(l),h=bu(e)(l);this.dispatch(a(e)),this.dispatch(Es(q(d))),this.dispatch(Ds(q(h)));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(p){throw this.dispatch(c(u)),this.dispatch(ws(d)),this.dispatch(qs(h)),p}}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{organization:e}},n);return this.dispatch(a(c)),c}}class mg extends E{constructor(){super(...arguments);y(this,"name","Asset Type Status");y(this,"url","/asset-type-statuses");y(this,"actions",{addOne:To,addMany:Io,setOne:Oo,setMany:Po,updateOne:Fo,updateMany:go,deleteOne:bo,deleteMany:_o,initialize:So});y(this,"selectors",{selectById:Ro,selectByIds:wo})}add(e){var p;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,l=((p=n.getState().userReducer.currentUser)==null?void 0:p.id)??null,u=new Date().toISOString(),d=M({...e,created_by:l,submitted_at:u});this.dispatch(a(d));const h=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(d),blockers:[e.asset_type],blocks:[d.uuid]});return h.then(A=>{this.dispatch(c(A))}).catch(()=>{this.dispatch(r(d.uuid))}),[d,h]}update(e){const{setOne:n}=this.actions,{selectById:a}=this.selectors,c=this.client.store.getState(),r=a(e.uuid)(c);if(!r)throw new Error(`Expected an existing asset type status with uuid ${e.uuid}`);const l={...r,...e};this.dispatch(n(l));const u=this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return u.then(d=>{this.dispatch(n(d))}).catch(()=>{this.dispatch(n(r))}),[l,u]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,{selectById:r}=this.selectors,l=r(e)(n.getState());if(!l)throw new Error(`No asset type status with uuid ${e} found in the store`);this.dispatch(a(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(u){throw this.dispatch(c(l)),u}}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{asset_type__organization:e}},n);return this.dispatch(a(c)),c}}class yg extends Je{constructor(){super(...arguments);y(this,"name","Document Attachment");y(this,"url","/document-attachments");y(this,"actions",{addOne:qo,addMany:Do,setOne:$o,setMany:Uo,updateOne:Co,updateMany:Lo,deleteOne:ko,deleteMany:No,initialize:jo});y(this,"selectors",{selectById:Ho,selectByIds:Wo})}getId(e){return e.uuid}buildModel(e){return M({file:URL.createObjectURL(e.file),file_sha1:e.file_sha1,created_by:e.created_by,file_name:e.file.name,file_type:e.file.type,submitted_at:e.submitted_at,document:e.modelUuid})}buildPayload(e,n){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:n.extension,document:e.document}}async bulkAdd(e){var I;const{store:n}=this.client,{addMany:a,updateMany:c,deleteMany:r}=this.actions,l=((I=n.getState().userReducer.currentUser)==null?void 0:I.id)??null,u=new Date().toISOString(),d=[],h=[],p={},A={};for(const F of e){const{documentUuid:P,file:g}=F,b=await this.client.files.getFilePayload(g);b.sha1 in p||(p[b.sha1]=b,A[b.sha1]=[]);const v=this.buildModel({file:g,file_sha1:b.sha1,submitted_at:u,created_by:l,modelUuid:P});d.push(v),h.push(this.buildPayload(v,b)),A[b.sha1].push(v.uuid)}this.dispatch(a(d));const f=this.enqueueRequest({description:O(m.POST,this.name,!0),method:m.POST,url:`${this.url}/bulk/`,payload:{submitted_at:u,attachments:h,files:Object.values(p)},blocks:d.map(F=>F.uuid),blockers:d.map(F=>F.file_sha1)});return f.then(({attachments:F,presigned_urls:P})=>{this.dispatch(c(F));const g=this.client.files.processPresignedUrls(P);for(const[b,v]of Object.entries(g))v.then(()=>{const B=A[b];for(const V of B)this.makeReadable(V)})}).catch(()=>{this.dispatch(r(d.map(F=>F.uuid)))}),[d,f.then(({attachments:F})=>F)]}async delete(e){return this._delete(e)}makeReadable(e){this.enqueueRequest({description:"Add attachment to AI assistant",method:m.PATCH,url:`${this.url}/${e}/`,payload:{readable_to_assistant:!0},blockers:["index-document-attachment",e],blocks:["index-document-attachment"]})}async refreshStore(e,n){const{initialize:a}=this.actions,c=this.list({queryParams:{document__project__organization:e}},n),r=this.list({queryParams:{document__organization:e}},n),u=(await Promise.all([c,r])).flat();return this.dispatch(a(u)),u}}class pg extends E{constructor(){super(...arguments);y(this,"name","Document");y(this,"url","/documents");y(this,"actions",{addOne:Jo,addMany:Xo,setOne:Qo,setMany:xo,updateOne:eh,updateMany:th,deleteOne:sh,deleteMany:ih,initialize:Zo});y(this,"selectors",{selectById:ah,selectByIds:ch})}add(e){var p;const{store:n}=this.client,{addOne:a,deleteOne:c,updateOne:r}=this.actions,l=((p=n.getState().userReducer.currentUser)==null?void 0:p.id)??null,u=new Date().toISOString(),d=M({...e,created_by:l,submitted_at:u});this.dispatch(a(d));const h=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(d),blockers:d.parent_document?[d.parent_document]:[],blocks:[d.uuid]});return h.then(A=>{this.dispatch(r(A))}).catch(()=>{this.dispatch(c(d.uuid))}),[d,h]}update(e){const{store:n}=this.client,{updateOne:a}=this.actions,{selectById:c}=this.selectors,r=c(e.uuid)(n.getState());if(!r)throw new Error(`attempting to update a document with uuid ${e.uuid} that does not exist in store.documents`);const l={...r,...e};this.dispatch(a(l));const u=this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return u.then(d=>{this.dispatch(a(d))}).catch(()=>{this.dispatch(a(r))}),[l,u]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c,addMany:r,deleteMany:l}=this.actions,{selectById:u}=this.selectors,d=n.getState(),h=u(e)(d);if(!h)throw new Error(`attempting to delete a document with uuid ${e} that does not exist in store.documents`);const p=dh(e)(d);this.dispatch(a(e)),this.dispatch(l(q(p)));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(A){throw this.dispatch(c(h)),this.dispatch(r(p)),A}}async refreshStore(e,n){const{initialize:a}=this.actions,c=this.list({queryParams:{project__organization:e}},n),r=this.list({queryParams:{organization:e}},n),u=(await Promise.all([c,r])).flat();return this.dispatch(a(u)),u}}class dt extends st{async get(s,e){return this.performRequest({url:`${this.url}/${s}/`,method:m.GET},e)}async list(s,e){return this.performRequest({url:`${this.url}/`,method:m.GET,...s},e)}async listPaginated(s,e){return this.performPagination({url:`${this.url}/`,method:m.GET,...s},e)}}class Ag extends dt{constructor(){super(...arguments);y(this,"name","Email Domains");y(this,"url","/organization-email-domains");y(this,"actions",{addOne:lh,addMany:oh,setOne:hh,setMany:mh,updateOne:yh,updateMany:ph,deleteOne:Ah,deleteMany:fh,initialize:uh});y(this,"selectors",{selectById:Th,selectByIds:Ih})}async add(e,n){return this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:{email:n,organization:e},blockers:[e,"create-org"],blocks:[]})}async delete(e){const{deleteOne:n,addOne:a}=this.actions;this.dispatch(n(e.uuid));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e.uuid}/`,blockers:[e.domain],blocks:[]})}catch(c){throw this.dispatch(a(e)),c}}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{organization:e}},n);return this.dispatch(a(c)),c}}class fg extends st{async getVerificationCode(s){return this.enqueueRequest({description:"Get verification code",method:m.GET,url:`/verification/email-verification/${s}/`,isAuthNeeded:!1,blockers:[],blocks:[]})}validateVerificationCode(s,e=void 0){return this.enqueueRequest({description:"Validate verification code",method:m.POST,url:`/verification/email-verification/${s}/`,isAuthNeeded:!1,payload:e,blockers:[],blocks:[]})}}const Lt={},Bn=new Set;let kt=0,jn=0,qn=0;const Sg=20;class Tg extends st{constructor(){super(...arguments);y(this,"host");y(this,"_dbPromise",SO.openDB("fileCache",1,{upgrade(e){e.createObjectStore("files")}}))}async renewUploadUrl(e){const n=await this.fetchCache(e);if(!n)throw new Error(`File with sha1 ${e} not found in cache`);const a=await Yt(n,e),c=await this.enqueueRequest({description:"Get S3 URL",method:m.GET,url:"/authentication/files/presigned-upload-url/",queryParams:{sha1:await at(n),file_type:n.type,extension:n.name.split(".").pop(),size:n.size.toString()},blockers:[],blocks:[`s3-${a}`]});return"url"in c&&this.dispatch(gh({sha1:e,...c})),c}async addCache(e,n){if(Bn.has(n))return;if(!e.type){const r=e.name.split("."),l=r[r.length-1];e=new File([e],e.name,{type:l})}if(!e.name||!e.size||!e.type)throw new Error("Cannot add files to cache that do not have a name, size and type.");const a=await this._dbPromise;!!await a.get("files",n)?(console.error("File already cached (this is unexpected at this point):",e.name,n),kt++):(await a.put("files",e,n),jn++),Bn.add(n),qn++,qn%Sg===0&&console.debug(`File cache summary: ${kt} hits and ${jn} misses, ${kt/(kt+jn)*100}% hit rate over ${qn} calls to addCache.`)}async removeCache(e){await(await this._dbPromise).delete("files",e),Bn.delete(e)}async fetchCache(e){return(await this._dbPromise).get("files",e)}async getOrRenewUploadUrl(e){const n=this.client.store.getState();return bh(e)(n)??await this.renewUploadUrl(e)}async uploadFileToS3(e){const n=await this.fetchCache(e);if(!n)throw new Error(`File with sha1 ${e} not found in cache`);const a=await Yt(n,e),c={file_name:n.name,file_sha1:e,file:a},r=await this.getOrRenewUploadUrl(e);if("warning"in r){if(r.warning==="already_uploaded")return[c,Promise.resolve(void 0)];throw new Error(r.warning)}const l=r.url,u=this.enqueueRequest({url:l,description:"Upload file",method:m.POST,isExternalUrl:!0,isAuthNeeded:!1,attachmentHash:e,blockers:[`s3-${a}`],blocks:[e],s3url:r});return[c,u]}async fetchFileFromUrl(e,n,a){const c=e.split("?")[0]??e,r=await this.fetchCache(n);if(r){if(!r.name)throw new Error("Cached file unexpectedly has no name.");return r}if(e.startsWith("blob:")){const h=await Xn(e),p=new File([h],a??n,{type:h.type});return await this.addCache(p,n),p}let l=Lt[c],u=!0;l?u=!1:(l=new Promise(h=>{this.enqueueRequest({description:"Download file",method:m.GET,url:e,isExternalUrl:!0,isResponseBlob:!0,isAuthNeeded:!1,blockers:[n],blocks:[n]}).then(p=>{const A=new File([p],a??n,{type:p.type});h(A)})}),Lt[c]=l);let d;try{d=await l}catch(h){throw u&&h instanceof C&&delete Lt[c],h}if(u){const h=await at(d);if(h!==n){const f=`The hash of the file returned from the server (${h}) does not match the
9
+ expected hash (${n}). 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=mc(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=I({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=I({...e,created_by:c,submitted_at:new Date().toISOString()});this.dispatch(qi(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(ji(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=I({...e,submitted_at:c,created_by:n}),u=I({...s,form:r.uuid,submitted_at:c,created_by:n});this.dispatch(Vi(r)),this.dispatch(qi(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(ki(r.uuid)),this.dispatch(ji(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(ki(e));try{return await this.enqueueRequest({description:"Delete form",method:h.DELETE,url:`/forms/${e}/`,blockers:[e],blocks:[]})}catch(u){throw this.dispatch(Vi(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=I({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=I({...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(Ui(c)),n.then(u=>(this.dispatch(Ot(u)),u)).catch(()=>{this.dispatch($i(c.uuid))}),[c,n]}update(e){const{store:s}=this.client,a=s.getState(),c=Li(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=Li(e)(a);if(!c)throw new Error(`Expected submission with uuid ${e} to exist`);const n=Fu(e)(a);this.dispatch($i(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(Ui(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=I({...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(Hi(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 T=I({...b,file_name:y.name,file_sha1:P.sha1,file:URL.createObjectURL(y),submitted_at:c,created_by:n,project:s});r.push(T),u.push(T.uuid),m.push({uuid:T.uuid,sha1:T.file_sha1,file_name:T.file_name,title:T.title,description:T.description,geo_marker:T.geo_marker,canvas_marker:T.canvas_marker,direction:T.direction,original_date:T.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=Wi(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=Wi(e)(a);if(!c)throw new Error(`Map image with uuid ${e} does not exist in the store`);this.dispatch(Hi(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 R{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=I({...e,submitted_at:a,created_by:c});this.dispatch(Yi(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(Xi(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(Xi(e));const c=this.enqueueRequest({description:"Delete issue association",method:h.DELETE,url:`/issue-associations/${e}/`,blockers:[e],blocks:[]});return c.catch(()=>{this.dispatch(Yi(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 Te{constructor(){super(...arguments);f(this,"name","Issue Attachment");f(this,"url","/issue-attachments");f(this,"initializeAttachments",xi);f(this,"addAttachments",ea);f(this,"updateAttachments",Qu);f(this,"removeAttachments",ta);f(this,"removeAttachment",Zu);f(this,"setAttachment",Xu);f(this,"selectAttachment",so)}buildOfflineAttachment(s){return I({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(xi(a))}}class Qg extends Te{constructor(){super(...arguments);f(this,"name","Issue Comment Attachment");f(this,"url","/issue-comment-attachments");f(this,"initializeAttachments",ia);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 I({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(ia(a))}}class Zg extends R{add(e){var n;const{store:s}=this.client,a=I({...e,author:(n=s.getState().userReducer.currentUser)==null?void 0:n.id,submitted_at:new Date().toISOString()});this.dispatch(na(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(ra(a.uuid))}),[a,c]}update(e){const{store:s}=this.client,a=da(e.uuid)(s.getState());if(!a)throw new Error(`Comment with uuid ${e.uuid} not found in store`);const c={...a,...e};this.dispatch(ca(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(ca(a))}),[c,n]}remove(e){const{store:s}=this.client,a=da(e)(s.getState());if(!a)throw new Error(`Comment with uuid ${e} not found in store`);this.dispatch(ra(e));const c=this.enqueueRequest({description:"Delete comment",method:h.DELETE,url:`/issue-comments/${e}/`,blockers:[e],blocks:[]});return c.catch(()=>{this.dispatch(na(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 R{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=I({...e,submitted_at:c,created_by:n});this.dispatch(oa(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(la(r.uuid)),d}),[r,u]}update(e){var m;const s=this.client.store.getState(),a=ha(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=I({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=ha(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(la(e)),n.length>0&&this.dispatch(ta(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(Qi(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(oa(c)),this.dispatch(ea(n)),this.dispatch(fl(r)),this.dispatch(_t(u)),this.dispatch(Ji(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 Te{constructor(){super(...arguments);f(this,"name","Issue Type Attachment");f(this,"url","/issue-type-attachments");f(this,"initializeAttachments",pa);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 I({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(pa(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=I({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 R{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=I({...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=I({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 R{add(e){var r;const{store:s}=this.client,a=s.getState(),c=I({...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(fa(c)),n.then(u=>(this.dispatch(it(u)),u)).catch(()=>{this.dispatch(Sa(c.uuid))}),[c,n]}update(e){const{store:s}=this.client,a=s.getState(),c=ba(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=ba(e)(a);if(!c)throw new Error(`Expected submission with uuid ${e} to exist`);const n=cl(e)(a);this.dispatch(Sa(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(fa(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 R{add(e){var r;const{store:s}=this.client,a=s.getState(),c=I({...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(Ra(c.uuid))}),[c,n]}update(e){const{store:s}=this.client,a=s.getState(),c=Oa(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=Oa(e)(a);if(!c)throw new Error(`IssueType with uuid ${e} does not exist in the store.`);const n=_a(e)(a);this.dispatch(Ra(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 R{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 hg{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(){console.debug(this.constructor.name,"clearing auth;"),this.dispatch(yd(!1)),this.clearTokens(),this.dispatch({type:dm.RESET_STATE}),this.dispatch({type:oc})}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=um(s).exp??a}catch{c=a}return c-a<rb}getAuthHeader(){return`Bearer ${this.getAccessToken()}`}async prepareAuth(){if(this.tokenIsExpiringSoon()){console.debug(this.constructor.name,"preparing auth");try{await this.renewTokens()}catch(s){return s instanceof M&&this.clearAuth(),s instanceof Error?Promise.reject(s):Promise.reject(new Error((s??Be).toString()))}}}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){const a=Ie.v4();return console.debug(this.constructor.name,"Initiating auth"),this.enqueueRequest({uuid:a,description:"Get token pair",method:h.POST,url:this.initTokensUrl,payload:s,isAuthNeeded:!1,checkAuth:!1,immediate:!0,blockers:[],blocks:[]}).then(c=>{this.setTokens(db(c))})}}class ob extends R{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(be(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(be(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(be(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(be(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(be(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(be(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 R{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 R{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 R{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(Va(s))}}class pb extends Te{constructor(){super(...arguments);f(this,"name","Project Attachment");f(this,"url","/project-attachments");f(this,"addAttachments",mh);f(this,"updateAttachments",yh);f(this,"removeAttachments",$a);f(this,"removeAttachment",fh);f(this,"setAttachment",ph);f(this,"selectAttachment",bh)}buildOfflineAttachment(s){return I({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 R{async saveExisting(e){if(!e.uuid)throw new Error("You can only use this method to save existing project files. The one provided has no uuid.");const s={...e};delete s.file;const 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(Ga(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(Ga(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 R{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($a(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(be({...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(Va(Object.values(m))),this.dispatch(Rh(r)),this.dispatch(Ah(u)),this.dispatch({type:"rehydrated/setRehydrated",payload:!0}),d&&this.dispatch(be({...d,project:n.uuid})),o}}invite(e,s){const a=Ie.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 R{add(e){const s=I({...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(Ue(c))}).catch(()=>{this.dispatch(Wa(s.uuid))}),[s,a]}update(e){const{store:s}=this.client,a=$e(e.uuid)(s.getState());if(!a)throw new Error(`Expected team with uuid ${e.uuid} to exist`);const c={...a,...e};this.dispatch(Ha(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(Ue(r))}).catch(()=>{this.dispatch(Ue(a))}),[c,n]}async delete(e){const{store:s}=this.client,a=s.getState(),c=$e(e)(a);if(!c)throw new Error(`Expected team with uuid ${e} to exist`);this.dispatch(Wa(e));try{return await this.enqueueRequest({description:"Delete team",method:h.DELETE,url:`/teams/${e}/`,blockers:[e],blocks:[e]})}catch(n){throw this.dispatch(Ue(c)),n}}async setMembers(e,s){const{store:a}=this.client,c=$e(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(Ha({...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(Ue(c))}),n}async addMembers(e,s){const{store:a}=this.client,c=$e(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=$e(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 Sb extends R{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 gb{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 lc,n={...e,BASE_URL:s,serviceName:a};if(e.immediate){const r={...n,uuid:e.uuid??Ie.v4()},u={payload:r,type:"",meta:{offline:{effect:{timestamp:new Date().toISOString(),request:r,BASE_URL:s,serviceName:a}}}};Qa(u,this).then(m=>{c.resolve(m.body)}).catch(m=>{Za(m,u),m instanceof Error?c.reject(m):c.reject(new Error((m??Be).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 Ge{constructor(){f(this,"graph");f(this,"requestAttemptCounter");this.graph=new om.DepGraph,this.requestAttemptCounter={}}static _fromOutbox(e){const s=new Ge;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))&&Ge._addDependency(c.payload.uuid,r.payload.uuid,s.graph)}}return s}_addDependency(e,s){Ge._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 bb=(t,e)=>{const s=new e(t);return WS(s),HS(t),s};var tm=(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))(tm||{});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=cc,i.BaseApiService=R,i.BaseSDK=gb,i.COMMON_AUTO_FIELDS=yc,i.CategoryService=zg,i.DEFAULT_ISSUE_PRIORITY=hm,i.DEFAULT_ISSUE_STATUS=lm,i.DeferredPromise=lc,i.DocumentAttachmentService=Cg,i.DocumentService=Dg,i.EMPTY_ARRAY=ic,i.EMPTY_OBJECT=ac,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.JWTService=ub,i.LicenseLevel=rc,i.LicenseService=ob,i.LicenseStatus=dc,i.OUTBOX_RETRY_DELAY=uc,i.OrganizationAccessLevel=Gt,i.OrganizationAccessService=lb,i.OrganizationService=hb,i.OutboxCoordinator=Ge,i.PaddleCheckoutEvent=nc,i.ProjectAccessLevel=Bt,i.ProjectAccessService=mb,i.ProjectAttachmentService=pb,i.ProjectFileService=Ab,i.ProjectService=yb,i.TeamService=fb,i.UNKNOWN_ERROR_MESSAGE=Be,i.UserService=Sb,i.VERSION_REDUCER_KEY=Ne,i.VerificationCodeType=tm,i._setLatestRetryTime=uh,i.acceptProjectInvite=Yl,i.addAsset=Bs,i.addAssetAttachment=Dm,i.addAssetAttachments=xt,i.addAssetProcedure=gs,i.addAssetProcedureAttachment=Bm,i.addAssetProcedureAttachments=zc,i.addAssetProcedureFieldValues=ds,i.addAssetProcedureFieldValuesAttachment=np,i.addAssetProcedureFieldValuesAttachments=dt,i.addAssetProcedureFieldValuesMany=yn,i.addAssetProcedureFields=tn,i.addAssetProcedureFieldsAttachment=Hm,i.addAssetProcedureFieldsAttachments=Kc,i.addAssetProcedureFieldsMany=Zm,i.addAssetProcedureInstance=ms,i.addAssetProcedureInstances=Tn,i.addAssetProcedureStep=sA,i.addAssetProcedureStepFieldValues=js,i.addAssetProcedureStepFieldValuesAttachment=Np,i.addAssetProcedureStepFieldValuesAttachments=ot,i.addAssetProcedureStepFieldValuesMany=Qn,i.addAssetProcedureStepFields=Rs,i.addAssetProcedureStepFieldsAttachment=vp,i.addAssetProcedureStepFieldsAttachments=Mn,i.addAssetProcedureStepFieldsMany=kp,i.addAssetProcedureSteps=zs,i.addAssetProcedures=Pp,i.addAssetStage=hA,i.addAssetStageCompletion=Ks,i.addAssetStageCompletions=Ys,i.addAssetStages=xs,i.addAssetType=yi,i.addAssetTypeAttachment=yA,i.addAssetTypeAttachments=ai,i.addAssetTypeFieldValues=li,i.addAssetTypeFieldValuesAttachment=VA,i.addAssetTypeFieldValuesAttachments=gt,i.addAssetTypeFieldValuesMany=rd,i.addAssetTypeFields=Kr,i.addAssetTypeFieldsAttachment=gA,i.addAssetTypeFieldsAttachments=Ur,i.addAssetTypeFieldsMany=OA,i.addAssetTypes=WA,i.addAssets=At,i.addCategory=Pi,i.addConversation=Pc,i.addDocumentAttachment=ay,i.addDocumentAttachments=Rd,i.addDocuments=zd,i.addEmailDomain=Gd,i.addForm=Vi,i.addFormRevision=qi,i.addFormRevisionAttachment=py,i.addFormRevisionAttachments=eu,i.addFormRevisions=du,i.addFormSubmission=Ui,i.addFormSubmissionAttachment=_y,i.addFormSubmissionAttachments=It,i.addFormSubmissions=_t,i.addForms=Iy,i.addGeoImage=Vu,i.addGeoImages=ku,i.addIssue=oa,i.addIssueAssociation=Yi,i.addIssueAssociations=Ji,i.addIssueAttachment=$y,i.addIssueAttachments=ea,i.addIssueComment=na,i.addIssueCommentAttachment=Ly,i.addIssueCommentAttachments=co,i.addIssueComments=Ky,i.addIssueType=ul,i.addIssueTypeAttachment=Qy,i.addIssueTypeAttachments=Oo,i.addIssueTypeFieldValues=fa,i.addIssueTypeFieldValuesAttachment=If,i.addIssueTypeFieldValuesAttachments=qt,i.addIssueTypeFieldValuesMany=uf,i.addIssueTypeFields=Jo,i.addIssueTypeFieldsAttachment=tf,i.addIssueTypeFieldsAttachments=Co,i.addIssueTypeFieldsMany=Af,i.addIssueUpdate=yl,i.addIssueUpdates=fl,i.addIssues=Po,i.addLicenses=Vf,i.addOrganization=mS,i.addOrganizations=hS,i.addProject=aS,i.addProjectAttachment=OS,i.addProjectAttachments=mh,i.addProjectFile=ES,i.addProjectFiles=Rh,i.addProjects=iS,i.addTeam=Ch,i.addUser=Bf,i.addUsers=$f,i.agentsReducer=Ic,i.agentsSlice=Jt,i.areArraysEqual=Sm,i.assetAttachmentReducer=Mc,i.assetAttachmentSlice=Qt,i.assetProcedureAttachmentReducer=Nc,i.assetProcedureAttachmentSlice=ts,i.assetProcedureFieldValuesAttachmentReducer=mn,i.assetProcedureFieldValuesAttachmentSlice=cs,i.assetProcedureFieldValuesReducer=bn,i.assetProcedureFieldValuesSlice=rs,i.assetProcedureFieldsAttachmentReducer=Zc,i.assetProcedureFieldsAttachmentSlice=ss,i.assetProcedureFieldsReducer=nn,i.assetProcedureFieldsSlice=is,i.assetProcedureInstanceReducer=On,i.assetProcedureInstanceSlice=hs,i.assetProcedureReducer=En,i.assetProcedureSlice=Ss,i.assetProcedureStepFieldValuesAttachmentReducer=Yn,i.assetProcedureStepFieldValuesAttachmentSlice=ws,i.assetProcedureStepFieldValuesReducer=tr,i.assetProcedureStepFieldValuesSlice=qs,i.assetProcedureStepFieldsAttachmentReducer=Dn,i.assetProcedureStepFieldsAttachmentSlice=Ts,i.assetProcedureStepFieldsReducer=Bn,i.assetProcedureStepFieldsSlice=Is,i.assetProcedureStepReducer=cr,i.assetProcedureStepSlice=ks,i.assetReducer=mr,i.assetSlice=$s,i.assetStageCompletionReducer=Sr,i.assetStageCompletionSlice=Ws,i.assetStageReducer=Ir,i.assetStageSlice=Zs,i.assetTypeAttachmentReducer=zr,i.assetTypeAttachmentSlice=ii,i.assetTypeFieldValuesAttachmentReducer=ad,i.assetTypeFieldValuesAttachmentSlice=di,i.assetTypeFieldValuesReducer=ld,i.assetTypeFieldValuesSlice=oi,i.assetTypeFieldsAttachmentReducer=Nr,i.assetTypeFieldsAttachmentSlice=ni,i.assetTypeFieldsReducer=Qr,i.assetTypeFieldsSlice=ri,i.assetTypeReducer=pd,i.assetTypeSlice=Ai,i.authReducer=fd,i.authSlice=Pt,i.baseReducer=LS,i.baseReducers=Ja,i.blobToBase64=_m,i.categoryReducer=Fd,i.categorySlice=bi,i.clearTokens=ZA,i.constructUploadedFilePayloads=Om,i.coordinatesAreEqual=ym,i.createModelAdapter=F,i.createMultiPointGeometry=Am,i.createOfflineAction=ch,i.createPayload=_,i.createPointGeometry=pm,i.createSelectionAdapter=mm,i.deleteAsset=Gs,i.deleteAssetAttachment=vc,i.deleteAssetAttachments=es,i.deleteAssetProcedure=bs,i.deleteAssetProcedureAttachment=Uc,i.deleteAssetProcedureAttachments=$c,i.deleteAssetProcedureFieldValues=us,i.deleteAssetProcedureFieldValuesAttachment=op,i.deleteAssetProcedureFieldValuesAttachments=ut,i.deleteAssetProcedureFieldValuesMany=Sn,i.deleteAssetProcedureFields=an,i.deleteAssetProcedureFieldsAttachment=Jm,i.deleteAssetProcedureFieldsAttachments=Jc,i.deleteAssetProcedureFieldsMany=sp,i.deleteAssetProcedureInstance=ps,i.deleteAssetProcedureInstances=In,i.deleteAssetProcedureStep=iA,i.deleteAssetProcedureStepFieldValues=Ms,i.deleteAssetProcedureStepFieldValuesAttachment=Yp,i.deleteAssetProcedureStepFieldValuesAttachments=lt,i.deleteAssetProcedureStepFieldValuesMany=xn,i.deleteAssetProcedureStepFields=Os,i.deleteAssetProcedureStepFieldsAttachment=jp,i.deleteAssetProcedureStepFieldsAttachments=kn,i.deleteAssetProcedureStepFieldsMany=Up,i.deleteAssetProcedureSteps=Ds,i.deleteAssetProcedures=Tp,i.deleteAssetStage=mA,i.deleteAssetStageCompletion=Js,i.deleteAssetStageCompletions=Xs,i.deleteAssetStages=ti,i.deleteAssetType=fi,i.deleteAssetTypeAttachment=qr,i.deleteAssetTypeAttachments=ci,i.deleteAssetTypeFieldValues=hi,i.deleteAssetTypeFieldValuesAttachment=DA,i.deleteAssetTypeFieldValuesAttachments=bt,i.deleteAssetTypeFieldValuesMany=ud,i.deleteAssetTypeFields=Jr,i.deleteAssetTypeFieldsAttachment=TA,i.deleteAssetTypeFieldsAttachments=Br,i.deleteAssetTypeFieldsMany=EA,i.deleteAssetTypes=YA,i.deleteAssets=or,i.deleteCategory=Pd,i.deleteDocumentAttachment=vd,i.deleteDocumentAttachments=wd,i.deleteEmailDomain=Ld,i.deleteForm=ki,i.deleteFormRevision=ji,i.deleteFormRevisionAttachment=Sy,i.deleteFormRevisionAttachments=su,i.deleteFormRevisions=uu,i.deleteFormSubmission=$i,i.deleteFormSubmissionAttachment=qy,i.deleteFormSubmissionAttachments=Rt,i.deleteFormSubmissions=vt,i.deleteGeoImage=Hi,i.deleteGeoImages=Cu,i.deleteIssue=la,i.deleteIssueAssociation=Xi,i.deleteIssueAssociations=Qi,i.deleteIssueAttachment=Zu,i.deleteIssueAttachments=ta,i.deleteIssueComment=ra,i.deleteIssueCommentAttachment=uo,i.deleteIssueCommentAttachments=oo,i.deleteIssueComments=Yy,i.deleteIssueTypeAttachment=wo,i.deleteIssueTypeAttachments=Eo,i.deleteIssueTypeFieldValues=Sa,i.deleteIssueTypeFieldValuesAttachment=vf,i.deleteIssueTypeFieldValuesAttachments=jt,i.deleteIssueTypeFieldValuesMany=mf,i.deleteIssueTypeFields=Qo,i.deleteIssueTypeFieldsAttachment=nf,i.deleteIssueTypeFieldsAttachments=Uo,i.deleteIssueTypeFieldsMany=gf,i.deleteIssueUpdate=Sl,i.deleteIssueUpdates=gl,i.deleteIssues=Fo,i.deleteOrganization=yS,i.deleteOrganizationAccess=Vl,i.deleteOrganizations=fS,i.deleteProject=Kl,i.deleteProjectAccess=Ul,i.deleteProjectAccesses=$l,i.deleteProjectAttachment=fh,i.deleteProjectAttachments=$a,i.deleteProjectFile=Oh,i.deleteProjectFiles=_h,i.deleteProjects=nS,i.deleteTeam=Wa,i.deleteUser=Nf,i.deleteUsers=Hf,i.dequeue=Qh,i.discard=Za,i.documentAttachmentReducer=Md,i.documentAttachmentSlice=Ii,i.documentSlice=Ri,i.documentsReducer=$d,i.downloadFile=vm,i.downloadInMemoryFile=Rm,i.emailDomainsReducer=Wd,i.emailDomainsSlice=_i,i.emailRegex=km,i.enqueue=Xh,i.enqueueRequest=rh,i.fallbackToEmptyArray=g,i.fallbackToEmptyObject=Re,i.fileReducer=Qd,i.fileSlice=vi,i.fileToBlob=pc,i.formReducer=Au,i.formRevisionAttachmentReducer=au,i.formRevisionAttachmentSlice=wi,i.formRevisionReducer=hu,i.formRevisionsSlice=Ei,i.formSlice=Mi,i.formSubmissionAttachmentReducer=Tu,i.formSubmissionAttachmentSlice=zi,i.formSubmissionReducer=Eu,i.formSubmissionSlice=Di,i.geoImageReducer=$u,i.geoImageSlice=Ni,i.getFileIdentifier=Im,i.getFileS3Key=Yt,i.getLocalDateString=hc,i.getLocalRelativeDateString=Fm,i.getOutboxCoordinator=qe,i.getRenamedFile=mc,i.hashFile=ke,i.initSDK=bb,i.initializeAssetAttachments=Zt,i.initializeAssetProcedureAttachments=kc,i.initializeAssetProcedureFieldValues=An,i.initializeAssetProcedureFieldValuesAttachments=dn,i.initializeAssetProcedureFields=en,i.initializeAssetProcedureFieldsAttachments=Wc,i.initializeAssetProcedureInstances=Fn,i.initializeAssetProcedureStepFieldValues=Xn,i.initializeAssetProcedureStepFieldValuesAttachments=Ln,i.initializeAssetProcedureStepFields=$n,i.initializeAssetProcedureStepFieldsAttachments=jn,i.initializeAssetProcedureSteps=ir,i.initializeAssetProcedures=vn,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=ur,i.initializeCategories=gd,i.initializeConversations=bc,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=xi,i.initializeIssueCommentAttachments=ia,i.initializeIssueTypeAttachments=pa,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=oS,i.initializeProjectAccesses=Va,i.initializeProjectAttachments=hh,i.initializeProjectFiles=Ih,i.initializeProjects=tS,i.initializeTeams=zh,i.initializeUsers=vl,i.isToday=Pm,i.issueAssociationReducer=Yu,i.issueAssociationSlice=Ki,i.issueAttachmentReducer=io,i.issueAttachmentSlice=Zi,i.issueCommentAttachmentReducer=po,i.issueCommentAttachmentSlice=sa,i.issueCommentReducer=So,i.issueCommentSlice=aa,i.issueReducer=Io,i.issueSlice=ua,i.issueTypeAttachmentReducer=Vo,i.issueTypeAttachmentSlice=ma,i.issueTypeFieldValuesAttachmentReducer=nl,i.issueTypeFieldValuesAttachmentSlice=Fa,i.issueTypeFieldValuesReducer=Wo,i.issueTypeFieldValuesSlice=ya,i.issueTypeFieldsAttachmentReducer=Go,i.issueTypeFieldsAttachmentSlice=Aa,i.issueTypeFieldsReducer=xo,i.issueTypeFieldsSlice=Pa,i.issueTypeReducer=ml,i.issueTypeSlice=Ia,i.issueUpdateReducer=Fl,i.issueUpdateSlice=va,i.licenseReducer=Ol,i.licenseSlice=wa,i.logOnlyOnce=wm,i.markAsDeleted=dh,i.markForDeletion=RS,i.memoize=Wt,i.moveDocument=Cd,i.offline=I,i.onlyUniqueHashes=Vm,i.onlyUniqueOfflineIds=Sc,i.organizationAccessReducer=zl,i.organizationAccessSlice=qa,i.organizationReducer=ah,i.organizationSlice=Ca,i.outboxReducer=oh,i.outboxSlice=Da,i.overmapEnhancer=tg,i.overmapReducer=NS,i.overmapReducers=Bh,i.performRequest=Qa,i.projectAccessReducer=Ll,i.projectAccessSlice=Ma,i.projectAttachmentReducer=Fh,i.projectAttachmentSlice=Ua,i.projectFileReducer=Mh,i.projectFileSlice=Ba,i.projectReducer=Jl,i.projectSlice=za,i.rehydratedReducer=Vh,i.rehydratedSlice=La,i.removeDocuments=Oi,i.removeIssueType=Ra,i.removeUser=wl,i.resetProjectFileObjectUrls=jS,i.resetStore=oc,i.restructureCreateSelectorWithArgs=S,i.saveActiveProjectFileBounds=Eh,i.selectAccessToken=xA,i.selectActiveOrganizationAccess=Qf,i.selectActiveProjectFileId=VS,i.selectActiveStatusLicenses=zf,i.selectAllDocumentAttachments=qd,i.selectAllProjectAttachments=gh,i.selectAncestorIdsOfDocument=uy,i.selectAssetAttachmentById=qc,i.selectAssetAttachmentMapping=wc,i.selectAssetAttachments=Ec,i.selectAssetById=Hs,i.selectAssetProcedureAttachmentById=Lc,i.selectAssetProcedureAttachmentMapping=Bc,i.selectAssetProcedureAttachments=Gc,i.selectAssetProcedureById=Fs,i.selectAssetProcedureFieldValues=os,i.selectAssetProcedureFieldValuesAttachmentById=lp,i.selectAssetProcedureFieldValuesAttachments=on,i.selectAssetProcedureFieldValuesAttachmentsByIds=ln,i.selectAssetProcedureFieldValuesAttachmentsMapping=ns,i.selectAssetProcedureFieldValuesById=ls,i.selectAssetProcedureFieldValuesMapping=gn,i.selectAssetProcedureFieldValuesOfAsset=pp,i.selectAssetProcedureFields=as,i.selectAssetProcedureFieldsAttachmentById=Qm,i.selectAssetProcedureFieldsAttachments=Qc,i.selectAssetProcedureFieldsAttachmentsMapping=Xc,i.selectAssetProcedureFieldsById=cp,i.selectAssetProcedureFieldsMapping=cn,i.selectAssetProcedureFieldsOfAssetProcedure=ip,i.selectAssetProcedureInstanceById=fs,i.selectAssetProcedureInstances=ys,i.selectAssetProcedureInstancesByIds=bp,i.selectAssetProcedureInstancesMapping=As,i.selectAssetProcedureInstancesOfAssetProcedure=Rn,i.selectAssetProcedureInstancesOfAssetType=gp,i.selectAssetProcedureStepById=nr,i.selectAssetProcedureStepFieldValues=ht,i.selectAssetProcedureStepFieldValuesAttachmentById=Jp,i.selectAssetProcedureStepFieldValuesAttachments=Hn,i.selectAssetProcedureStepFieldValuesAttachmentsByIds=Wn,i.selectAssetProcedureStepFieldValuesAttachmentsMapping=Es,i.selectAssetProcedureStepFieldValuesById=Vs,i.selectAssetProcedureStepFieldValuesMapping=er,i.selectAssetProcedureStepFieldValuesOfAsset=Zp,i.selectAssetProcedureStepFieldValuesOfAssetProcedureInstance=xp,i.selectAssetProcedureStepFieldValuesOfAssetProcedureStep=eA,i.selectAssetProcedureStepFields=vs,i.selectAssetProcedureStepFieldsAttachmentById=Vp,i.selectAssetProcedureStepFieldsAttachments=Cn,i.selectAssetProcedureStepFieldsAttachmentsMapping=zn,i.selectAssetProcedureStepFieldsById=Lp,i.selectAssetProcedureStepFieldsMapping=_s,i.selectAssetProcedureStepFieldsOfAssetProcedureStep=$p,i.selectAssetProcedureStepMapping=pt,i.selectAssetProcedureSteps=rr,i.selectAssetProcedureStepsByIds=Us,i.selectAssetProcedureStepsMappingOfAssetProcedure=aA,i.selectAssetProcedureStepsOfAssetProcedure=cA,i.selectAssetProcedures=wn,i.selectAssetProceduresByIds=_p,i.selectAssetProceduresMapping=Ps,i.selectAssetProceduresOfOrganization=Op,i.selectAssetStageById=Rr,i.selectAssetStageCompletionById=gr,i.selectAssetStageCompletionMapping=Qs,i.selectAssetStageCompletions=oA,i.selectAssetStageCompletionsByIds=br,i.selectAssetStages=Or,i.selectAssetStagesByIds=si,i.selectAssetStagesMappingOfAssetProcedure=pA,i.selectAssetStagesOfAssetProcedure=AA,i.selectAssetTypeAttachmentById=Vr,i.selectAssetTypeAttachmentMapping=jr,i.selectAssetTypeAttachments=Mr,i.selectAssetTypeById=gi,i.selectAssetTypeFieldValues=mi,i.selectAssetTypeFieldValuesAttachmentById=UA,i.selectAssetTypeFieldValuesAttachments=td,i.selectAssetTypeFieldValuesAttachmentsByIds=sd,i.selectAssetTypeFieldValuesAttachmentsMapping=ui,i.selectAssetTypeFieldValuesById=pi,i.selectAssetTypeFieldValuesMapping=od,i.selectAssetTypeFieldValuesOfAsset=GA,i.selectAssetTypeFields=St,i.selectAssetTypeFieldsAttachmentById=RA,i.selectAssetTypeFieldsAttachments=Lr,i.selectAssetTypeFieldsAttachmentsMapping=Gr,i.selectAssetTypeFieldsById=MA,i.selectAssetTypeFieldsMapping=Xr,i.selectAssetTypeFieldsOfAssetType=qA,i.selectAssetTypeValuesOfAssetType=LA,i.selectAssetTypes=JA,i.selectAssetTypesByIds=XA,i.selectAssetTypesMapping=Si,i.selectAssets=lr,i.selectAssetsByIds=hr,i.selectAssetsMapping=Ls,i.selectAssetsOfAssetType=Ns,i.selectAttachmentsOfAsset=jc,i.selectAttachmentsOfAssetProcedure=Nm,i.selectAttachmentsOfAssetProcedureFieldValues=hn,i.selectAttachmentsOfAssetProcedureFields=Xm,i.selectAttachmentsOfAssetProcedureStepFieldValues=Kn,i.selectAttachmentsOfAssetProcedureStepFields=Mp,i.selectAttachmentsOfAssetType=kr,i.selectAttachmentsOfAssetTypeFieldValues=id,i.selectAttachmentsOfAssetTypeFields=IA,i.selectAttachmentsOfDocument=ry,i.selectAttachmentsOfFormRevision=gy,i.selectAttachmentsOfFormSubmission=Fu,i.selectAttachmentsOfIssue=to,i.selectAttachmentsOfIssueComment=Wy,i.selectAttachmentsOfIssueType=ef,i.selectAttachmentsOfIssueTypeFieldValues=cl,i.selectAttachmentsOfIssueTypeFields=rf,i.selectAttachmentsOfProject=Ph,i.selectCategories=ty,i.selectCategoriesByIds=sy,i.selectCategoryById=Ti,i.selectCategoryMapping=Fi,i.selectCommentsOfIssue=Jy,i.selectConversation=Cm,i.selectConversationMapping=Xt,i.selectConversations=zm,i.selectCurrentUser=kt,i.selectDeletedRequests=TS,i.selectDocumentAttachmentById=jd,i.selectDocumentAttachmentMapping=Ed,i.selectDocumentById=Ud,i.selectDocuments=Dd,i.selectDocumentsByIds=dy,i.selectDocumentsMapping=ze,i.selectEmailDomains=Hd,i.selectEmailDomainsAsMapping=Nd,i.selectEmailDomainsOfOrganization=hy,i.selectFieldValuesOfAssetProcedureInstance=Ap,i.selectFormById=fu,i.selectFormMapping=yu,i.selectFormRevisionAttachmentsMapping=iu,i.selectFormRevisionById=Py,i.selectFormRevisionMapping=Tt,i.selectFormRevisions=ou,i.selectFormRevisionsOfForm=lu,i.selectFormSubmissionAttachemntsByIds=Pu,i.selectFormSubmissionAttachmentsMapping=Ci,i.selectFormSubmissionById=Li,i.selectFormSubmissions=Gi,i.selectFormSubmissionsMapping=Bi,i.selectFormSubmissionsOfAsset=wu,i.selectFormSubmissionsOfForm=_u,i.selectFormSubmissionsOfIssue=vu,i.selectForms=Oy,i.selectGeoImageById=Wi,i.selectGeoImageMapping=Du,i.selectGeoImages=Uu,i.selectGeoImagesOfProject=ky,i.selectIsImportingProjectFile=kS,i.selectIsLoggedIn=ey,i.selectIssueAssociationById=Nu,i.selectIssueAssociationMapping=st,i.selectIssueAssociations=Uy,i.selectIssueAssociationsOfAsset=Ku,i.selectIssueAssociationsOfIssue=Wu,i.selectIssueAssociationsToIssue=Hu,i.selectIssueAttachmentById=so,i.selectIssueAttachmentMapping=xu,i.selectIssueAttachments=eo,i.selectIssueById=ha,i.selectIssueCommentAttachmentById=mo,i.selectIssueCommentAttachmentMapping=lo,i.selectIssueCommentAttachments=ho,i.selectIssueCommentById=da,i.selectIssueCommentMapping=fo,i.selectIssueCountOfCategory=iy,i.selectIssueMapping=To,i.selectIssueTypeAttachmentById=Mo,i.selectIssueTypeAttachmentMapping=qo,i.selectIssueTypeAttachments=jo,i.selectIssueTypeById=Oa,i.selectIssueTypeFieldValues=ga,i.selectIssueTypeFieldValuesAttachmentById=wf,i.selectIssueTypeFieldValuesAttachments=il,i.selectIssueTypeFieldValuesAttachmentsByIds=al,i.selectIssueTypeFieldValuesAttachmentsMapping=Ta,i.selectIssueTypeFieldValuesById=ba,i.selectIssueTypeFieldValuesMapping=Ho,i.selectIssueTypeFieldValuesOfIssue=pf,i.selectIssueTypeFields=Et,i.selectIssueTypeFieldsAttachmentById=df,i.selectIssueTypeFieldsAttachments=Bo,i.selectIssueTypeFieldsAttachmentsMapping=$o,i.selectIssueTypeFieldsById=Tf,i.selectIssueTypeFieldsMapping=Zo,i.selectIssueTypeFieldsOfIssueType=bf,i.selectIssueTypeMapping=ll,i.selectIssueTypeValuesOfIssueType=Ff,i.selectIssueTypes=hl,i.selectIssueTypesByIds=Ef,i.selectIssueTypesOfOrganization=qf,i.selectIssueUpdateMapping=bl,i.selectIssueUpdatesOfIssue=Pl,i.selectIssuesByIds=Xy,i.selectIssuesOfIssueType=_a,i.selectIssuesOfIssueTypeCount=jf,i.selectLatestAssetProcedureFieldsOfAssetProcedure=ap,i.selectLatestAssetProcedureStepFieldsOfAssetProcedureStep=Bp,i.selectLatestAssetTypeFieldsOfAssetType=jA,i.selectLatestFieldsByAssetProcedureStep=Gp,i.selectLatestFormRevisionOfForm=Fy,i.selectLatestIssueTypeFieldsOfIssueType=Pf,i.selectLatestRetryTime=IS,i.selectLicense=kf,i.selectLicenseForProject=Rl,i.selectLicenses=Vt,i.selectLicensesForProjectsMapping=Cf,i.selectLicensesOfOrganization=PS,i.selectNumberOfAssetsOfAssetType=uA,i.selectOrganizationAccessById=Xf,i.selectOrganizationAccessForUser=Zf,i.selectOrganizationAccessUserMapping=kl,i.selectOrganizationAccesses=ja,i.selectOrganizationById=SS,i.selectOrganizationUsersAsMapping=ih,i.selectOrganizationUsersIds=sh,i.selectOrganizations=th,i.selectOrganizationsMapping=eh,i.selectOrganizationsWithAccess=gS,i.selectProjectAccessById=xf,i.selectProjectAccessForUser=eS,i.selectProjectAccessMapping=ka,i.selectProjectAccessUserMapping=Gl,i.selectProjectAccesses=Bl,i.selectProjectAttachmentById=bh,i.selectProjectAttachmentMapping=Sh,i.selectProjectById=dS,i.selectProjectFileById=MS,i.selectProjectFileMapping=qh,i.selectProjectFiles=jh,i.selectProjectMapping=Dt,i.selectProjectUsersAsMapping=Ql,i.selectProjectUsersIds=Xl,i.selectProjects=rS,i.selectProjectsOfOrganization=bS,i.selectRehydrated=DS,i.selectRootDocuments=oy,i.selectSortedOrganizationUsers=FS,i.selectSortedProjectUsers=uS,i.selectStageMapping=ft,i.selectTeamById=$e,i.selectTeams=Ya,i.selectTeamsByIds=US,i.selectTeamsMapping=Ka,i.selectTeamsOfOrganization=$S,i.selectTeamsOfUser=BS,i.selectUploadUrl=Xd,i.selectUserById=Yf,i.selectUsersByIds=Jf,i.selectUsersMapping=zt,i.setActiveProjectFileId=wh,i.setAsset=rA,i.setAssetAttachment=Oc,i.setAssetAttachments=Um,i.setAssetProcedure=Ip,i.setAssetProcedureAttachment=Cc,i.setAssetProcedureAttachments=Gm,i.setAssetProcedureFieldValues=hp,i.setAssetProcedureFieldValuesAttachment=rp,i.setAssetProcedureFieldValuesAttachments=dp,i.setAssetProcedureFieldValuesMany=mp,i.setAssetProcedureFields=xm,i.setAssetProcedureFieldsAttachment=Wm,i.setAssetProcedureFieldsAttachments=Km,i.setAssetProcedureFieldsMany=ep,i.setAssetProcedureInstance=fp,i.setAssetProcedureInstances=Sp,i.setAssetProcedureStep=ar,i.setAssetProcedureStepFieldValues=Xp,i.setAssetProcedureStepFieldValuesAttachment=Hp,i.setAssetProcedureStepFieldValuesAttachments=Wp,i.setAssetProcedureStepFieldValuesMany=Qp,i.setAssetProcedureStepFields=zp,i.setAssetProcedureStepFieldsAttachment=wp,i.setAssetProcedureStepFieldsAttachments=Ep,i.setAssetProcedureStepFieldsMany=Cp,i.setAssetProcedureSteps=tA,i.setAssetProcedures=Rp,i.setAssetStage=Tr,i.setAssetStages=lA,i.setAssetType=NA,i.setAssetTypeAttachment=wr,i.setAssetTypeAttachments=fA,i.setAssetTypeFieldValues=$A,i.setAssetTypeFieldValuesAttachment=kA,i.setAssetTypeFieldValuesAttachments=zA,i.setAssetTypeFieldValuesMany=BA,i.setAssetTypeFields=_A,i.setAssetTypeFieldsAttachment=bA,i.setAssetTypeFieldsAttachments=PA,i.setAssetTypeFieldsMany=vA,i.setAssetTypes=HA,i.setAssets=dA,i.setConversation=Fc,i.setCurrentUser=Wf,i.setDocumentAttachment=Od,i.setDocumentAttachments=cy,i.setDocuments=kd,i.setForm=Ty,i.setFormRevision=nu,i.setFormRevisionAttachment=Ay,i.setFormRevisionAttachments=yy,i.setFormSubmission=Ot,i.setFormSubmissionAttachment=vy,i.setFormSubmissionAttachments=wy,i.setFormSubmissions=jy,i.setGeoImage=tt,i.setGeoImages=Mu,i.setIsImportingProjectFile=vh,i.setIssueAssociation=Cy,i.setIssueAssociations=zy,i.setIssueAttachment=Xu,i.setIssueAttachments=By,i.setIssueComment=ca,i.setIssueCommentAttachment=no,i.setIssueCommentAttachments=Ny,i.setIssueComments=yo,i.setIssueType=at,i.setIssueTypeAttachment=_o,i.setIssueTypeAttachments=Zy,i.setIssueTypeFieldValues=of,i.setIssueTypeFieldValuesAttachment=Rf,i.setIssueTypeFieldValuesAttachments=Of,i.setIssueTypeFieldValuesMany=lf,i.setIssueTypeFields=yf,i.setIssueTypeFieldsAttachment=sf,i.setIssueTypeFieldsAttachments=af,i.setIssueTypeFieldsMany=ff,i.setIssueUpdate=Mf,i.setLoggedIn=yd,i.setOrganization=lS,i.setOrganizations=xl,i.setProfilePicture=Kf,i.setProject=sS,i.setProjectAttachment=ph,i.setProjectAttachments=Ah,i.setProjectFile=vS,i.setProjectFiles=wS,i.setProjects=Hl,i.setRehydrated=CS,i.setTeam=Ue,i.setTokens=QA,i.setUploadUrl=Jd,i.setUser=Uf,i.setUsers=Df,i.shallowEqual=fm,i.slugify=jm,i.spacesToDashesLower=qm,i.teamReducer=Dh,i.teamSlice=Na,i.toFileNameSafeString=Em,i.toOfflineIdRecord=fc,i.truncate=Mm,i.updateAsset=Qe,i.updateAssetAttachment=$m,i.updateAssetAttachments=_c,i.updateAssetProcedure=Ye,i.updateAssetProcedureAttachment=Lm,i.updateAssetProcedureAttachments=Dc,i.updateAssetProcedureFieldValues=We,i.updateAssetProcedureFieldValuesAttachment=up,i.updateAssetProcedureFieldValuesAttachments=un,i.updateAssetProcedureFieldValuesMany=fn,i.updateAssetProcedureFields=sn,i.updateAssetProcedureFieldsAttachment=Ym,i.updateAssetProcedureFieldsAttachments=Yc,i.updateAssetProcedureFieldsMany=tp,i.updateAssetProcedureInstance=Ke,i.updateAssetProcedureInstances=yp,i.updateAssetProcedureStep=Cs,i.updateAssetProcedureStepFieldValues=Xe,i.updateAssetProcedureStepFieldValuesAttachment=Kp,i.updateAssetProcedureStepFieldValuesAttachments=Nn,i.updateAssetProcedureStepFieldValuesMany=Zn,i.updateAssetProcedureStepFields=Je,i.updateAssetProcedureStepFieldsAttachment=qp,i.updateAssetProcedureStepFieldsAttachments=Vn,i.updateAssetProcedureStepFieldsMany=Dp,i.updateAssetProcedureSteps=mt,i.updateAssetProcedures=Fp,i.updateAssetStage=ei,i.updateAssetStageCompletion=yr,i.updateAssetStageCompletions=fr,i.updateAssetStages=yt,i.updateAssetType=xe,i.updateAssetTypeAttachment=SA,i.updateAssetTypeAttachments=Er,i.updateAssetTypeFieldValues=Ze,i.updateAssetTypeFieldValuesAttachment=CA,i.updateAssetTypeFieldValuesAttachments=ed,i.updateAssetTypeFieldValuesMany=dd,i.updateAssetTypeFields=Yr,i.updateAssetTypeFieldsAttachment=FA,i.updateAssetTypeFieldsAttachments=$r,i.updateAssetTypeFieldsMany=wA,i.updateAssetTypes=KA,i.updateAssets=nA,i.updateCategory=bd,i.updateConversation=Tc,i.updateDocumentAttachment=ny,i.updateDocumentAttachments=_d,i.updateDocuments=Fe,i.updateForm=Ry,i.updateFormRevisionAttachment=fy,i.updateFormRevisionAttachments=tu,i.updateFormSubmission=Ou,i.updateFormSubmissionAttachment=Ey,i.updateFormSubmissionAttachments=bu,i.updateFormSubmissions=My,i.updateGeoImage=zu,i.updateGeoImages=Vy,i.updateIssue=wt,i.updateIssueAssociation=Lu,i.updateIssueAssociations=Dy,i.updateIssueAttachment=Gy,i.updateIssueAttachments=Qu,i.updateIssueCommentAttachment=Hy,i.updateIssueCommentAttachments=ro,i.updateIssueType=ol,i.updateIssueTypeAttachment=xy,i.updateIssueTypeAttachments=vo,i.updateIssueTypeFieldValues=it,i.updateIssueTypeFieldValuesAttachment=_f,i.updateIssueTypeFieldValuesAttachments=sl,i.updateIssueTypeFieldValuesMany=hf,i.updateIssueTypeFields=Xo,i.updateIssueTypeFieldsAttachment=cf,i.updateIssueTypeFieldsAttachments=Do,i.updateIssueTypeFieldsMany=Sf,i.updateLicense=be,i.updateOrganization=AS,i.updateOrganizationAccess=Ml,i.updateOrganizations=pS,i.updateProject=Wl,i.updateProjectAccess=Dl,i.updateProjectAttachment=_S,i.updateProjectAttachments=yh,i.updateProjectFile=Ga,i.updateProjectFiles=qS,i.updateProjects=cS,i.updateTeam=Ha,i.updateUser=Lf,i.updateUsers=Gf,i.userReducer=El,i.userSlice=Ea,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(f)}const p=d.type.split("/")[1];if(!p)throw new Error("File has no extension");const A=a??h+"."+p;if(d=Jn(d,A),!d.name)throw new Error("Failed to set file's name");await this.addCache(d,h),Lt[c]=new Promise(f=>{f(d)})}return d}processPresignedUrls(e){const n={};for(const[a,c]of Object.entries(e))n[a]=this.enqueueRequest({url:c.url,description:"Upload file to S3",method:m.POST,isExternalUrl:!0,isAuthNeeded:!1,attachmentHash:a,blockers:[`s3-${c.fields.key}`],blocks:[a],s3url:c});return n}async getFilePayload(e){const n=await at(e),a={sha1:n,file_type:e.type,extension:e.name.split(".").pop(),size:e.size};return await this.client.files.addCache(e,n),a}}class Ig extends E{constructor(){super(...arguments);y(this,"name","Form Identifier");y(this,"url","/form-identifiers");y(this,"actions",{addOne:wh,addMany:Eh,setOne:vh,setMany:Vh,updateOne:zh,updateMany:Bh,deleteOne:jh,deleteMany:qh,initialize:Rh});y(this,"selectors",{selectById:$h,selectByIds:Uh})}add(e){var p;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,l=((p=n.getState().userReducer.currentUser)==null?void 0:p.id)??null,u=new Date().toISOString(),d=M({...e,created_by:l,submitted_at:u});this.dispatch(a(d));const h=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(d),blockers:[d.form],blocks:[d.uuid]});return h.then(A=>{this.dispatch(c(A))}).catch(()=>{this.dispatch(r(d.uuid))}),[d,h]}update(e){const{store:n}=this.client,{setOne:a}=this.actions,{selectById:c}=this.selectors,r=c(e.uuid)(n.getState());if(!r)throw new Error(`Expected form identifier with uuid ${e.uuid} to exist`);const l={...r,...e};this.dispatch(a(l));const u=this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return u.then(d=>{this.dispatch(a(d))}).catch(()=>{this.dispatch(a(r))}),[l,u]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,{selectById:r}=this.selectors,l=n.getState(),u=r(e)(l);if(!u)throw new Error(`Expected form identifier with uuid ${e} to exist`);this.dispatch(a(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(c(u)),d}}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{form__organization:e}},n);return this.dispatch(a(c)),c}}class Og extends E{constructor(){super(...arguments);y(this,"name","Form Identifier Value");y(this,"url","/form-identifier-values");y(this,"actions",{addOne:Nh,addMany:Gh,setOne:Hh,setMany:Wh,updateOne:Kh,updateMany:Yh,deleteOne:Zh,deleteMany:Jh,initialize:kh});y(this,"selectors",{selectById:Qh,selectByIds:xh})}add(e){var p;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,l=((p=n.getState().userReducer.currentUser)==null?void 0:p.id)??null,u=new Date().toISOString(),d=M({...e,created_by:l,submitted_at:u});this.dispatch(a(d));const h=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(d),blockers:[e.form_submission,e.form_identifier],blocks:[d.uuid]});return h.then(A=>{this.dispatch(c(A))}).catch(()=>{this.dispatch(r(d.uuid))}),[d,h]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,{selectById:r}=this.selectors,l=n.getState(),u=r(e)(l);if(!u)throw new Error(`Expected form identifier value with uuid ${e} to exist`);this.dispatch(a(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(c(u)),d}}async refreshStore(e,n){const{initialize:a}=this.actions,r=(await this.listPaginated({queryParams:{form_submission__form_revision__form__organization:e,latest:!0}},n)).flat();return this.dispatch(a(r)),r}}class Pg extends E{constructor(){super(...arguments);y(this,"name","Form Revision Attachment");y(this,"url","/form-revision-attachments");y(this,"actions",{addOne:im,addMany:nm,setOne:am,setMany:cm,updateOne:dm,updateMany:rm,deleteOne:um,deleteMany:lm,initialize:sm});y(this,"selectors",{selectById:hm,selectByIds:mm})}async bulkAdd(e){var A;const{addMany:n,setMany:a,deleteMany:c}=this.actions,r=new Date().toISOString(),l=((A=this.client.store.getState().userReducer.currentUser)==null?void 0:A.id)??null,u={},d=[],h=[];for(const f of e){const{revisionUuid:I,fieldIdentifier:F,file:P}=f,g=await this.client.files.getFilePayload(P);g.sha1 in u||(u[g.sha1]=g);const b=M({file:URL.createObjectURL(P),file_type:P.type,file_name:P.name,file_sha1:g.sha1,created_by:l,form_revision:I,submitted_at:r,field_identifier:F});d.push(b);const v={uuid:b.uuid,file_name:P.name,field_identifier:F,file_extension:g.extension,file_sha1:g.sha1,form_revision:I};h.push(v)}this.dispatch(n(d));const p=this.enqueueRequest({description:O(m.POST,this.name,!0),method:m.POST,url:`${this.url}/bulk/`,payload:{submitted_at:r,attachments:h,files:Object.values(u)},blockers:d.map(f=>f.form_revision),blocks:d.map(f=>f.uuid)});return p.then(f=>{this.client.files.processPresignedUrls(f.presigned_urls),this.dispatch(a(f.attachments))}).catch(()=>{this.dispatch(c(d.map(f=>f.uuid)))}),[d,p.then(({attachments:f})=>f)]}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{form_revision__form__organization:e}},n);return this.dispatch(a(c)),c}}class Fg extends E{constructor(){super(...arguments);y(this,"name","Form Revision");y(this,"url","/form-revisions");y(this,"actions",{addOne:hi,addMany:mi,setOne:fm,setMany:Sm,updateOne:Tm,updateMany:Im,deleteOne:yi,deleteMany:pi,initialize:Am});y(this,"selectors",{selectById:Om,selectByIds:Pm})}add(e){var A;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,u=((A=n.getState().userReducer.currentUser)==null?void 0:A.id)??null,d=new Date().toISOString(),h=M({...e,created_by:u,submitted_at:d});this.dispatch(a(h));const p=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(h),blockers:[e.form],blocks:[h.uuid]});return p.then(f=>{this.dispatch(c(f))}).catch(()=>{this.dispatch(r(h.uuid))}),[h,p]}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{form__organization:e}},n);return this.dispatch(a(c)),c}}class gg extends E{constructor(){super(...arguments);y(this,"name","Form");y(this,"url","/forms");y(this,"actions",{addOne:Mm,addMany:Rm,setOne:wm,setMany:Em,updateOne:vm,updateMany:Vm,deleteOne:zm,deleteMany:Bm,initialize:_m});y(this,"selectors",{selectById:Dm,selectByIds:$m})}add(e,n){var A;const{store:a}=this.client,{addOne:c,deleteOne:r}=this.actions,l=new Date().toISOString(),u=((A=a.getState().userReducer.currentUser)==null?void 0:A.id)??null,d=M({...e,submitted_at:l,created_by:u}),h=M({...n,form:d.uuid,submitted_at:l,created_by:u});this.dispatch(c(d)),this.dispatch(hi(h));const p=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:{...z(d),initial_revision:{uuid:h.uuid,submitted_at:h.submitted_at,title:h.title,description:h.description,fields:h.fields}},blockers:[],blocks:[d.uuid,h.uuid]});return p.catch(f=>{throw this.dispatch(r(d.uuid)),this.dispatch(yi(h.uuid)),f}),[d,h,p]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,{selectById:r}=this.selectors,l=n.getState(),u=r(e)(l);if(!u)throw new Error("Expected form to exist");const d=ry(e)(l),h=Fm(e)(l);this.dispatch(a(e)),this.dispatch(Mi(q(d))),this.dispatch(pi(q(h)));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(p){throw this.dispatch(c(u)),this.dispatch(mi(h)),this.dispatch(_i(d)),p}}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{organization:e}},n);return this.dispatch(a(c)),c}}class bg extends E{constructor(){super(...arguments);y(this,"name","Form Submission Attachment");y(this,"url","/form-submission-attachments");y(this,"actions",{addOne:Lm,addMany:Ii,setOne:km,setMany:Nm,updateOne:Gm,updateMany:Hm,deleteOne:Wm,deleteMany:Oi,initialize:Cm});y(this,"selectors",{selectById:Km,selectByIds:Ym})}async bulkAdd(e){var A;const{addMany:n,setMany:a,deleteMany:c}=this.actions,r=new Date().toISOString(),l=((A=this.client.store.getState().userReducer.currentUser)==null?void 0:A.id)??null,u={},d=[],h=[];for(const f of e){const{submissionUuid:I,fieldIdentifier:F,file:P}=f,g=await this.client.files.getFilePayload(P);g.sha1 in u||(u[g.sha1]=g);const b=M({file:URL.createObjectURL(P),file_type:P.type,file_name:P.name,file_sha1:g.sha1,created_by:l,form_submission:I,submitted_at:r,field_identifier:F});d.push(b);const v={uuid:b.uuid,file_name:P.name,file_sha1:g.sha1,file_extension:g.extension,field_identifier:F,form_submission:I};h.push(v)}this.dispatch(n(d));const p=this.enqueueRequest({description:O(m.POST,this.name,!0),method:m.POST,url:`${this.url}/bulk/`,payload:{submitted_at:r,attachments:h,files:Object.values(u)},blockers:d.map(f=>f.form_submission),blocks:d.map(f=>f.uuid)});return p.then(f=>{this.client.files.processPresignedUrls(f.presigned_urls),this.dispatch(a(f.attachments))}).catch(f=>{throw this.dispatch(c(d.map(I=>I.uuid))),f}),[d,p.then(({attachments:f})=>f)]}async bulkDelete(e){const{store:n}=this.client,{deleteMany:a,addMany:c}=this.actions,r=n.getState(),l=gi(e)(r);this.dispatch(a(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!0),method:m.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(u){throw this.dispatch(c(l)),u}}async refreshStore(e,n){const{initialize:a}=this.actions,r=(await this.listPaginated({queryParams:{form_submission__form_revision__form__organization:e}},n)).flat();return this.dispatch(a(r)),r}}class _g extends E{constructor(){super(...arguments);y(this,"name","Form Submission");y(this,"url","/form-submissions");y(this,"actions",{addOne:ty,addMany:_i,setOne:xm,setMany:ey,updateOne:sy,updateMany:iy,deleteOne:ny,deleteMany:Mi,initialize:Qm});y(this,"selectors",{selectById:cy,selectByIds:dy})}add(e){var A;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,u=((A=n.getState().userReducer.currentUser)==null?void 0:A.id)??null,d=new Date().toISOString(),h=M({...e,created_by:u,submitted_at:d}),p=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(h),blockers:[e.form_revision],blocks:[h.uuid]});return this.dispatch(a(h)),p.then(f=>{this.dispatch(c(f))}).catch(()=>{this.dispatch(r(h.uuid))}),[h,p]}update(e){const{store:n}=this.client,{setOne:a}=this.actions,{selectById:c}=this.selectors,r=n.getState(),l=c(e.uuid)(r);if(!l)throw new Error(`Expected submission with uuid ${e.uuid} to exist`);const u={...l,...e};this.dispatch(a(u));const d=this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${u.uuid}/`,payload:e,blockers:[u.uuid],blocks:[u.uuid]});return d.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(a(l))}),[u,d]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,{selectById:r}=this.selectors,l=n.getState(),u=r(e)(l);if(!u)throw new Error(`Expected submission with uuid ${e} to exist`);const d=Zm(e)(l);this.dispatch(a(e)),this.dispatch(Oi(q(d)));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(h){throw this.dispatch(c(u)),this.dispatch(Ii(d)),h}}async refreshStore(e,n){const{initialize:a}=this.actions,r=(await this.listPaginated({queryParams:{limit:this.pageSize,paginate:!0,form_revision__form_organization:e}},n)).flat();return this.dispatch(a(r)),r}}class Mg extends E{constructor(){super(...arguments);y(this,"name","Geo Image");y(this,"url","/geo-images");y(this,"actions",{addOne:yy,addMany:py,setOne:hy,setMany:my,updateOne:Ay,updateMany:fy,deleteOne:Sy,deleteMany:Ty,initialize:oy});y(this,"selectors",{selectById:Oy,selectByIds:Py})}async add(e){var F;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,{file:l,...u}=e,d=new Date().toISOString(),h=((F=n.getState().userReducer.currentUser)==null?void 0:F.id)??null,p=u.project,A=await this.client.files.getFilePayload(l),f=M({...u,file_name:l.name,file_sha1:A.sha1,file_type:l.type,file:URL.createObjectURL(l),submitted_at:d,created_by:h});this.dispatch(a(f));const I=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:{uuid:f.uuid,submitted_at:d,title:f.title,description:f.description,geo_marker:f.geo_marker,canvas_marker:f.canvas_marker,sha1:f.file_sha1,project:f.project,file_name:f.file_name,direction:f.direction,original_date:f.original_date,file:A},blocks:[p],blockers:[p]});return I.then(P=>{this.client.files.processPresignedUrls(P.presigned_urls),this.dispatch(c(P.geo_image))}).catch(()=>{this.dispatch(r(f.uuid))}),[f,I.then(P=>P.geo_image)]}async bulkAdd(e,n){var F;const{store:a}=this.client,{addMany:c,setMany:r,deleteMany:l}=this.actions,u=new Date().toISOString(),d=((F=a.getState().userReducer.currentUser)==null?void 0:F.id)??null,h=[],p=[],A=[],f={};for(const P of e){const{file:g,...b}=P,v=await this.client.files.getFilePayload(g);v.sha1 in f||(f[v.sha1]=v);const B=M({...b,file_name:g.name,file_sha1:v.sha1,file_type:g.type,file:URL.createObjectURL(g),submitted_at:u,created_by:d,project:n});h.push(B),p.push(B.uuid),A.push({uuid:B.uuid,sha1:B.file_sha1,file_name:B.file_name,title:B.title,description:B.description,geo_marker:B.geo_marker,canvas_marker:B.canvas_marker,direction:B.direction,original_date:B.original_date})}this.dispatch(c(h));const I=this.enqueueRequest({description:O(m.POST,this.name,!0),method:m.POST,url:`${this.url}/bulk/`,payload:{submitted_at:u,project:n,geo_images:A,files:Object.values(f)},blocks:[n],blockers:p});return I.then(P=>{this.client.files.processPresignedUrls(P.presigned_urls),this.dispatch(r(P.geo_images))}).catch(()=>{this.dispatch(l(p))}),[h,I.then(P=>P.geo_images)]}update(e){const{store:n}=this.client,{setOne:a}=this.actions,{selectById:c}=this.selectors,r=n.getState(),l=c(e.uuid)(r);if(!l)throw new Error(`Map image with uuid ${e.uuid} does not exist in the store`);const u={...l,...e};this.dispatch(a(u));const d=this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blocks:[e.uuid],blockers:[e.uuid]});return d.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(a(l))}),[u,d]}async delete(e){const{store:n}=this.client,{deleteOne:a,setOne:c}=this.actions,{selectById:r}=this.selectors,l=n.getState(),u=r(e)(l);if(!u)throw new Error(`Map image with uuid ${e} does not exist in the store`);this.dispatch(a(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blocks:[e],blockers:[e]})}catch(d){throw this.dispatch(c(u)),d}}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{project:e}},n);return this.dispatch(a(c)),c}}class Rg extends E{constructor(){super(...arguments);y(this,"name","Issue Association");y(this,"url","/issue-associations");y(this,"actions",{addOne:Ey,addMany:et,setOne:My,setMany:_y,updateOne:Ry,updateMany:wy,deleteOne:vy,deleteMany:tt,initialize:by});y(this,"selectors",{selectById:Vy,selectByIds:zy})}add(e){var p;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,l=new Date().toISOString(),u=((p=n.getState().userReducer.currentUser)==null?void 0:p.id)??null,d=M({...e,submitted_at:l,created_by:u});this.dispatch(a(d));const h=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(d),blockers:[e.associated_issue,...e.issue?[e.issue]:[],...e.asset?[e.asset]:[]],blocks:[d.uuid]});return h.then(A=>{this.dispatch(c(A))}).catch(()=>{this.dispatch(r(d.uuid))}),[d,h]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,{selectById:r}=this.selectors,l=r(e)(n.getState());if(!l)throw new Error(`Issue association with uuid ${e} not found in store.`);this.dispatch(a(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(u){throw this.dispatch(c(l)),u}}async refreshStore(e,n){const{initialize:a}=this.actions,r=(await this.listPaginated({queryParams:{associated_issue__project:e}},n)).flat();return this.dispatch(a(r)),r}}class wg extends Je{constructor(){super(...arguments);y(this,"name","Issue Attachment");y(this,"url","/issue-attachments");y(this,"actions",{addOne:ky,addMany:zi,setOne:Ny,setMany:Gy,updateOne:Hy,updateMany:Wy,deleteOne:Ky,deleteMany:Bi,initialize:Ly});y(this,"selectors",{selectById:Jy,selectByIds:Xy})}getId(e){return e.uuid}buildModel(e){return M({file:URL.createObjectURL(e.file),file_sha1:e.file_sha1,created_by:e.created_by,file_name:e.file.name,file_type:e.file.type,submitted_at:e.submitted_at,issue:e.modelUuid})}buildPayload(e,n){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:n.extension,issue:e.issue}}async bulkAdd(e){return this._bulkAdd(e.map(n=>({modelUuid:n.issueUuid,file:n.file})))}async delete(e){return this._delete(e)}async refreshStore(e,n){const{initialize:a}=this.actions,r=(await this.listPaginated({queryParams:{issue__project:e}},n)).flat();return this.dispatch(a(r)),r}}class Eg extends Je{constructor(){super(...arguments);y(this,"name","Issue Comment Attachment");y(this,"url","/issue-comment-attachments");y(this,"actions",{addOne:tp,addMany:sp,setOne:ip,setMany:np,updateOne:ap,updateMany:cp,deleteOne:dp,deleteMany:rp,initialize:ep});y(this,"selectors",{selectById:lp,selectByIds:op})}getId(e){return e.uuid}buildModel(e){return M({file:URL.createObjectURL(e.file),file_sha1:e.file_sha1,created_by:e.created_by,file_name:e.file.name,file_type:e.file.type,submitted_at:e.submitted_at,issue_comment:e.modelUuid})}buildPayload(e,n){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:n.extension,issue_comment:e.issue_comment}}async bulkAdd(e){return this._bulkAdd(e.map(n=>({modelUuid:n.issueCommentUuid,file:n.file})))}async delete(e){return this._delete(e)}async refreshStore(e,n){const{initialize:a}=this.actions,r=(await this.listPaginated({queryParams:{issue_comment__issue__project:e}},n)).flat();return this.dispatch(a(r)),r}}class vg extends E{constructor(){super(...arguments);y(this,"name","Issue Comment");y(this,"url","/issue-comments");y(this,"actions",{addOne:pp,addMany:Ap,setOne:fp,setMany:Sp,updateOne:Tp,updateMany:Ip,deleteOne:Op,deleteMany:Pp,initialize:yp});y(this,"selectors",{selectById:Fp,selectByIds:gp})}add(e){const{store:n}=this.client,{addOne:a,updateOne:c,deleteOne:r}=this.actions,l=M({...e,author:n.getState().userReducer.currentUser.id,submitted_at:new Date().toISOString()});this.dispatch(a(l));const u=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(l),blockers:[e.issue],blocks:[l.uuid]});return u.then(d=>{this.dispatch(c(d))}).catch(()=>{this.dispatch(r(l.uuid))}),[l,u]}update(e){const{store:n}=this.client,{updateOne:a}=this.actions,{selectById:c}=this.selectors,r=c(e.uuid)(n.getState());if(!r)throw new Error(`Comment with uuid ${e.uuid} not found in store`);const l={...r,...e};this.dispatch(a(l));const u=this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return u.then(d=>{this.dispatch(a(d))}).catch(()=>{this.dispatch(a(r))}),[l,u]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,{selectById:r}=this.selectors,l=r(e)(n.getState());if(!l)throw new Error(`Comment with uuid ${e} not found in store`);this.dispatch(a(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(u){throw this.dispatch(c(l)),u}}async refreshStore(e,n){const{setMany:a}=this.actions,r=(await this.listPaginated({queryParams:{issue__project:e}},n)).flat();return this.dispatch(a(r)),r}}class Vg extends E{constructor(){super(...arguments);y(this,"name","Issue");y(this,"url","/issues");y(this,"actions",{addOne:Rp,addMany:Li,setOne:wp,setMany:Ep,updateOne:vp,updateMany:Vp,deleteOne:zp,deleteMany:ki,initialize:Mp});y(this,"selectors",{selectById:jp,selectByIds:qp})}add(e){var A;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,l=n.getState(),u=new Date().toISOString(),d=((A=l.userReducer.currentUser)==null?void 0:A.id)??null,h=M({...e,submitted_at:u,created_by:d});this.dispatch(a(h));const p=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(h),blockers:[h.project,h.issue_type,h.status],blocks:[h.uuid]});return p.then(f=>{this.dispatch(c(f))}).catch(f=>{throw this.dispatch(r(h.uuid)),f}),[h,p]}update(e){var p;const{updateOne:n}=this.actions,{selectById:a}=this.selectors,c=this.client.store.getState(),r=a(e.uuid)(c);if(!r)throw new Error(`Attempting to update an issue with uuid ${e.uuid} that doesn't exist in the store`);const l={...r,...e};this.dispatch(n(l));const u={};for(const A of[U.TITLE,U.DESCRIPTION,U.STATUS,U.PRIORITY,U.ASSIGNED_TO,U.DUE_DATE])if(A in e&&e[A]!==r[A])switch(A){case U.PRIORITY:u[A]=e[A];break;case U.DUE_DATE:u[A]=e[A];break;case U.DESCRIPTION:u[A]=e[A];break;case U.TITLE:u[A]=e[A];break;case U.STATUS:{const f=e[A],I=dn(f)(c);if(!I)throw new Error(`Trying to update issue type status with ${f} which does not exist in store`);u[A]={name:I.name,color:I.color,uuid:I.uuid};break}case U.ASSIGNED_TO:{const f=e[A];if(f===null)u[A]=null;else{const I=Dt(f)(c);if(!I)throw new Error(`Trying to update assigned to with ${f} which does not exist in store.`);u[A]={full_name:I.username,id:I.id}}break}}const d=M({created_by:((p=c.userReducer.currentUser)==null?void 0:p.id)??null,submitted_at:new Date().toISOString(),issue:r.uuid,changes:u});this.dispatch(un(d));const h=this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return h.then(A=>{this.dispatch(n(A))}).catch(()=>{this.dispatch(n(r)),this.dispatch(on(d.uuid))}),[l,h]}bulkUpdate(e,n){const{store:a}=this.client,{updateMany:c}=this.actions,{selectByIds:r}=this.selectors,l=q(e).toSorted(St);if(l.length!==e.length)throw new Error("payloads contains duplicate uuids.");const u=r(l)(a.getState()).toSorted(Zt);if(l.length!=u.length)throw new Error(`Attempting to bulk update ${l.length-u.length} issues that dont exist in the store`);const d=[];for(let f=0;f<l.length;f++)d.push({...u[f],...e[f]});this.dispatch(c(d));const h=Xe(e,Math.min(n??e.length,k)),p=[];let A=null;for(const f of h){const I=Qe.v4(),F=q(f),P=f.map(({status:b})=>b).filter(Boolean),g=this.enqueueRequest({description:O(m.PATCH,this.name,!0),method:m.PATCH,url:`${this.url}/bulk/`,payload:{payloads:f},blockers:(A?[A]:[]).concat(F).concat(P),blocks:[I].concat(F)});p.push(g),A=I}return Promise.all(p).then(f=>{this.dispatch(c(f.flat()))}).catch(()=>{this.dispatch(c(u))}),[d,p]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,{selectById:r}=this.selectors,l=n.getState(),u=r(e)(l);if(!u)throw new Error(`No issue with uuid ${e} found in the store`);const d=By(e)(l),h=Dy(e)(l),p=Zy(e)(l),A=lS(e)(l);this.dispatch(a(e)),this.dispatch(Bi(q(p))),this.dispatch(hn(q(A))),this.dispatch(tt(q(d))),this.dispatch(tt(q(h)));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(f){throw this.dispatch(c(u)),this.dispatch(zi(p)),this.dispatch(ln(A)),this.dispatch(et(d)),this.dispatch(et(h)),f}}async bulkDelete(e){const{store:n}=this.client,{addMany:a,deleteMany:c}=this.actions,{selectByIds:r}=this.selectors,l=n.getState(),u=r(e)(l),d=jy(e)(l),h=qy(e)(l);this.dispatch(c(e)),this.dispatch(tt(q(d))),this.dispatch(tt(q(h)));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!0),method:m.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(p){throw this.dispatch(a(u)),this.dispatch(et(d)),this.dispatch(et(h)),p}}async refreshStore(e,n){const{initialize:a}=this.actions,r=(await this.listPaginated({queryParams:{project:e}},n)).flat();return this.dispatch(a(r)),r}}class zg extends Je{constructor(){super(...arguments);y(this,"name","Issue Type Attachment");y(this,"url","/issue-type-attachments");y(this,"actions",{addOne:Lp,addMany:kp,setOne:Np,setMany:Gp,updateOne:Hp,updateMany:Wp,deleteOne:Kp,deleteMany:Yp,initialize:Cp});y(this,"selectors",{selectById:Jp,selectByIds:Xp})}getId(e){return e.uuid}buildModel(e){return M({file:URL.createObjectURL(e.file),file_sha1:e.file_sha1,created_by:e.created_by,file_name:e.file.name,file_type:e.file.type,submitted_at:e.submitted_at,issue_type:e.modelUuid})}buildPayload(e,n){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:n.extension,issue_type:e.issue_type}}async bulkAdd(e){return this._bulkAdd(e.map(n=>({modelUuid:n.issueTypeUuid,file:n.file})))}async delete(e){return this._delete(e)}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{issue_type__organization:e}},n);return this.dispatch(a(c)),c}}class Bg extends E{constructor(){super(...arguments);y(this,"name","Issue Type Fields Attachment");y(this,"url","/issue-type-fields-attachments");y(this,"actions",{addOne:tA,addMany:sA,setOne:iA,setMany:nA,updateOne:aA,updateMany:cA,deleteOne:dA,deleteMany:rA,initialize:eA});y(this,"selectors",{selectById:lA,selectByIds:oA})}async bulkAdd(e){var A;const{addMany:n,setMany:a,deleteMany:c}=this.actions,r=new Date().toISOString(),l=((A=this.client.store.getState().userReducer.currentUser)==null?void 0:A.id)??null,u={},d=[],h=[];for(const f of e){const{fieldsRevisionUuid:I,fieldIdentifier:F,file:P}=f,g=await this.client.files.getFilePayload(P);g.sha1 in u||(u[g.sha1]=g);const b=M({file:URL.createObjectURL(P),file_type:P.type,file_name:P.name,file_sha1:g.sha1,created_by:l,fields_revision:I,submitted_at:r,field_identifier:F});d.push(b);const v={uuid:b.uuid,file_name:P.name,file_extension:g.extension,field_identifier:F,file_sha1:g.sha1,fields_revision:I};h.push(v)}this.dispatch(n(d));const p=this.enqueueRequest({description:O(m.POST,this.name,!0),method:m.POST,url:`${this.url}/bulk/`,payload:{submitted_at:r,attachments:h,files:Object.values(u)},blockers:d.map(f=>f.fields_revision),blocks:d.map(f=>f.uuid)});return p.then(f=>{this.client.files.processPresignedUrls(f.presigned_urls),this.dispatch(a(f.attachments))}).catch(()=>{this.dispatch(c(d.map(f=>f.uuid)))}),[d,p.then(({attachments:f})=>f)]}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{fields_revision__issue_type__organization:e}},n);return this.dispatch(a(c)),c}}class jg extends E{constructor(){super(...arguments);y(this,"name","Issue Type Fields");y(this,"url","/issue-type-fields");y(this,"actions",{addOne:wA,addMany:EA,setOne:vA,setMany:VA,updateOne:zA,updateMany:BA,deleteOne:jA,deleteMany:qA,initialize:RA});y(this,"selectors",{selectById:$A,selectByIds:UA})}add(e){var p;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,l=((p=n.getState().userReducer.currentUser)==null?void 0:p.id)??null,u=new Date().toISOString(),d=M({...e,created_by:l,submitted_at:u});this.dispatch(a(d));const h=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(d),blockers:[d.issue_type],blocks:[d.uuid]});return h.then(A=>{this.dispatch(c(A))}).catch(A=>{throw this.dispatch(r(d.uuid)),A}),[d,h]}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{issue_type__organization:e}},n);return this.dispatch(a(c)),c}}class qg extends E{constructor(){super(...arguments);y(this,"name","Issue Type Field Values Attachment");y(this,"url","/issue-type-field-values-attachments");y(this,"actions",{addOne:NA,addMany:Ji,setOne:GA,setMany:HA,updateOne:WA,updateMany:KA,deleteOne:YA,deleteMany:Xi,initialize:kA});y(this,"selectors",{selectById:JA,selectByIds:XA})}async bulkAdd(e){var A;const{addMany:n,setMany:a,deleteMany:c}=this.actions,r=new Date().toISOString(),l=((A=this.client.store.getState().userReducer.currentUser)==null?void 0:A.id)??null,u={},d=[],h=[];for(const f of e){const{fieldValuesUuid:I,fieldIdentifier:F,file:P}=f,g=await this.client.files.getFilePayload(P);g.sha1 in u||(u[g.sha1]=g);const b=M({file:URL.createObjectURL(P),file_type:P.type,file_name:P.name,file_sha1:g.sha1,created_by:l,field_values:I,submitted_at:r,field_identifier:F});d.push(b);const v={uuid:b.uuid,file_name:P.name,file_sha1:g.sha1,file_extension:g.extension,field_identifier:F,field_values:I};h.push(v)}this.dispatch(n(d));const p=this.enqueueRequest({description:O(m.POST,this.name,!0),method:m.POST,url:`${this.url}/bulk/`,payload:{submitted_at:r,attachments:h,files:Object.values(u)},blockers:d.map(f=>f.field_values),blocks:d.map(f=>f.uuid)});return p.then(({presigned_urls:f,attachments:I})=>{this.client.files.processPresignedUrls(f),this.dispatch(a(I))}).catch(f=>{throw this.dispatch(c(d.map(I=>I.uuid))),f}),[d,p.then(({attachments:f})=>f)]}async bulkDelete(e){const{store:n}=this.client,{deleteMany:a,addMany:c}=this.actions,{selectByIds:r}=this.selectors,l=n.getState(),u=r(e)(l);this.dispatch(a(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!0),method:m.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(d){throw this.dispatch(c(u)),d}}async refreshStore(e,n){const{initialize:a}=this.actions,r=(await this.listPaginated({queryParams:{field_values__issue__project:e,latest:!0}},n)).flat();return this.dispatch(a(r)),r}}class Dg extends E{constructor(){super(...arguments);y(this,"name","Issue Type Field Values");y(this,"url","/issue-type-field-values");y(this,"actions",{addOne:pA,addMany:AA,setOne:fA,setMany:SA,updateOne:TA,updateMany:IA,deleteOne:OA,deleteMany:PA,initialize:yA});y(this,"selectors",{selectById:gA,selectByIds:bA})}add(e){var A;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,u=((A=n.getState().userReducer.currentUser)==null?void 0:A.id)??null,d=new Date().toISOString(),h=M({...e,created_by:u,submitted_at:d}),p=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(h),blockers:[e.issue,e.fields_revision],blocks:[h.uuid]});return this.dispatch(a(h)),p.then(f=>{this.dispatch(c(f))}).catch(()=>{this.dispatch(r(h.uuid))}),[h,p]}update(e){const{store:n}=this.client,{setOne:a}=this.actions,{selectById:c}=this.selectors,r=n.getState(),l=c(e.uuid)(r);if(!l)throw new Error(`Expected IssueTypeFieldValues with uuid ${e.uuid} to exist`);const u={...l,...e};this.dispatch(a(u));const d=this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[u.uuid,u.fields_revision,u.issue],blocks:[u.uuid]});return d.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(a(l))}),[u,d]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,{selectById:r}=this.selectors,l=n.getState(),u=r(e)(l);if(!u)throw new Error(`Expected submission with uuid ${e} to exist`);const d=QA(e)(l);this.dispatch(a(e)),this.dispatch(Xi(q(d)));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(h){throw this.dispatch(c(u)),this.dispatch(Ji(d)),h}}async refreshStore(e,n){const{initialize:a}=this.actions,r=(await this.listPaginated({queryParams:{issue__project:e,latest:!0}},n)).flat();return this.dispatch(a(r)),r}}class $g extends E{constructor(){super(...arguments);y(this,"name","Issue Type Identifier");y(this,"url","/issue-type-identifiers");y(this,"actions",{addOne:sf,addMany:nf,setOne:af,setMany:cf,updateOne:df,updateMany:rf,deleteOne:uf,deleteMany:lf,initialize:tf});y(this,"selectors",{selectById:hf,selectByIds:mf})}add(e){var p;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,l=((p=n.getState().userReducer.currentUser)==null?void 0:p.id)??null,u=new Date().toISOString(),d=M({...e,created_by:l,submitted_at:u});this.dispatch(a(d));const h=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(d),blockers:[d.issue_type],blocks:[d.uuid]});return h.then(A=>{this.dispatch(c(A))}).catch(()=>{this.dispatch(r(d.uuid))}),[d,h]}update(e){const{store:n}=this.client,{setOne:a}=this.actions,{selectById:c}=this.selectors,r=c(e.uuid)(n.getState());if(!r)throw new Error(`Expected issue type identifier with uuid ${e.uuid} to exist`);const l={...r,...e};this.dispatch(a(l));const u=this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return u.then(d=>{this.dispatch(a(d))}).catch(()=>{this.dispatch(a(r))}),[l,u]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,{selectById:r}=this.selectors,l=n.getState(),u=r(e)(l);if(!u)throw new Error(`Expected issue type identifier with uuid ${e} to exist`);this.dispatch(a(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(c(u)),d}}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{issue_type__organization:e}},n);return this.dispatch(a(c)),c}}class Ug extends E{constructor(){super(...arguments);y(this,"name","Issue Type Identifier Value");y(this,"url","/issue-type-identifier-values");y(this,"actions",{addOne:ff,addMany:Sf,setOne:Tf,setMany:If,updateOne:Of,updateMany:Pf,deleteOne:Ff,deleteMany:gf,initialize:Af});y(this,"selectors",{selectById:_f,selectByIds:Mf})}add(e){var p;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,l=((p=n.getState().userReducer.currentUser)==null?void 0:p.id)??null,u=new Date().toISOString(),d=M({...e,created_by:l,submitted_at:u});this.dispatch(a(d));const h=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(d),blockers:[e.issue,e.issue_type_identifier],blocks:[d.uuid]});return h.then(A=>{this.dispatch(c(A))}).catch(()=>{this.dispatch(r(d.uuid))}),[d,h]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,{selectById:r}=this.selectors,l=n.getState(),u=r(e)(l);if(!u)throw new Error(`Expected issue type identifier value with uuid ${e} to exist`);this.dispatch(a(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(c(u)),d}}async refreshStore(e,n){const{initialize:a}=this.actions,r=(await this.listPaginated({queryParams:{issue__project:e,latest:!0}},n)).flat();return this.dispatch(a(r)),r}}class Cg extends E{constructor(){super(...arguments);y(this,"name","Issue Type");y(this,"url","/issue-types");y(this,"actions",{addOne:vf,addMany:Vf,setOne:zf,setMany:Bf,updateOne:jf,updateMany:qf,deleteOne:Df,deleteMany:$f,initialize:Ef});y(this,"selectors",{selectById:Cf,selectByIds:Lf})}add(e){var A;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,u=((A=n.getState().userReducer.currentUser)==null?void 0:A.id)??null,d=new Date().toISOString(),h=M({...e,submitted_at:d,created_by:u});this.dispatch(a(h));const p=this.enqueueRequest({method:m.POST,url:`${this.url}/`,payload:z(h),blockers:[],blocks:[h.uuid]});return p.then(f=>{this.dispatch(c(f))}).catch(()=>{this.dispatch(r(h.uuid))}),[h,p]}update(e){const{store:n}=this.client,{setOne:a}=this.actions,{selectById:c}=this.selectors,r=n.getState(),l=c(e.uuid)(r);if(!l)throw new Error(`IssueType with uuid ${e.uuid} does not exist in the store.`);const u={...l,...e};this.dispatch(a(u));const d=this.enqueueRequest({method:m.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(a(l))}),[u,d]}async delete(e){const{store:n}=this.client,{deleteOne:a,setOne:c}=this.actions,{selectById:r}=this.selectors,l=n.getState(),u=r(e)(l);if(!u)throw new Error(`IssueType with uuid ${e} does not exist in the store.`);const d=Dp(e)(l);this.dispatch(a(e)),this.dispatch(ki(q(d)));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(h){throw this.dispatch(c(u)),this.dispatch(Li(d)),h}}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{organization:e}},n);return this.dispatch(a(c)),c}}class Lg extends E{constructor(){super(...arguments);y(this,"name","Issue Type Status");y(this,"url","/issue-type-statuses");y(this,"actions",{addOne:Hf,addMany:Wf,setOne:Kf,setMany:Yf,updateOne:Zf,updateMany:Jf,deleteOne:Xf,deleteMany:Qf,initialize:Gf});y(this,"selectors",{selectById:dn,selectByIds:eS})}add(e){var p;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,l=((p=n.getState().userReducer.currentUser)==null?void 0:p.id)??null,u=new Date().toISOString(),d=M({...e,created_by:l,submitted_at:u});this.dispatch(a(d));const h=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(d),blockers:[e.issue_type],blocks:[d.uuid]});return h.then(A=>{this.dispatch(c(A))}).catch(()=>{this.dispatch(r(d.uuid))}),[d,h]}update(e){const{setOne:n}=this.actions,{selectById:a}=this.selectors,c=this.client.store.getState(),r=a(e.uuid)(c);if(!r)throw new Error(`Expected an existing issue type status with uuid ${e.uuid}`);const l={...r,...e};this.dispatch(n(l));const u=this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return u.then(d=>{this.dispatch(n(d))}).catch(()=>{this.dispatch(n(r))}),[l,u]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,{selectById:r}=this.selectors,l=r(e)(n.getState());if(!l)throw new Error(`No issue type status with uuid ${e} found in the store`);this.dispatch(a(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(u){throw this.dispatch(c(l)),u}}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{issue_type__organization:e}},n);return this.dispatch(a(c)),c}}class kg extends E{constructor(){super(...arguments);y(this,"name","Issue Update");y(this,"url","/issue-updates");y(this,"actions",{addOne:un,addMany:ln,setOne:nS,setMany:aS,updateOne:cS,updateMany:dS,deleteOne:on,deleteMany:hn,initialize:iS});y(this,"selectors",{selectById:rS,selectByIds:uS})}async refreshStore(e,n){const{initialize:a}=this.actions,r=(await this.listPaginated({queryParams:{issue__project:e}},n)).flat();return this.dispatch(a(r)),r}}const Ng=1800;function Gg(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 Hg extends LF{constructor(){super(...arguments);y(this,"_getRenewedTokens",async e=>{const n=this.performRequest({method:m.POST,url:this.refreshTokensUrl,payload:{refresh:e},isAuthNeeded:!1,checkAuth:!1});let a;try{a=await n}catch(c){console.error("Could not renew tokens; clearing auth",c),this.clearAuth();return}if(!a.access)throw new Error("Missing access token");return{accessToken:a.access,refreshToken:a.refresh??this.getRefreshToken()}})}clearAuth(){console.debug(this.constructor.name,"clearing auth;"),this.dispatch(Vo(!1)),this.clearTokens(),this.dispatch(_()),this.dispatch(_())}async renewTokens(){const e=this.getRefreshToken();if(!e)throw new Error("No refresh token found");console.debug(this.constructor.name,"renewing tokens");try{const n=await this._getRenewedTokens(e);if(!n)return;console.log("Got renewed tokens"),this.setTokens(n)}catch(n){throw console.error("Could not renew tokens; clearing auth",n),this.clearAuth(),n}}tokenIsExpiringSoon(){const e=this.getAccessToken();if(!e)return!1;const n=Date.now()/1e3;let a;try{a=TO(e).exp??n}catch{a=n}return a-n<Ng}getAuthHeader(){return`Bearer ${this.getAccessToken()}`}async prepareAuth(){if(this.tokenIsExpiringSoon()){console.debug(this.constructor.name,"preparing auth");try{await this.renewTokens()}catch(e){return e instanceof C&&this.clearAuth(),e instanceof Error?Promise.reject(e):Promise.reject(new Error((e??ct).toString()))}}}async handleUnauthorized(e,n){const a=this.client.store.getState();if(e.url.endsWith("/token/refresh/"))throw a.authReducer.isLoggedIn&&console.warn("No signed-in user to sign out."),this.clearAuth(),new C({message:"You have been signed out due to inactivity.",response:n,discard:!0});if(a.authReducer.isLoggedIn)await this.renewTokens();else throw console.debug("Forbidden; user is not logged in."),new C({message:"Incorrect username or password.",response:n,discard:!0})}async initAuth(e){const n=Qe.v4();return console.debug(this.constructor.name,"Initiating auth"),this.performRequest({uuid:n,method:m.POST,url:this.initTokensUrl,payload:e,isAuthNeeded:!1,checkAuth:!1}).then(a=>{this.setTokens(Gg(a))})}}class Wg extends dt{constructor(){super(...arguments);y(this,"name","Organization Access");y(this,"url","/organization-accesses");y(this,"actions",{addOne:bS,addMany:_S,setOne:MS,setMany:RS,updateOne:wS,updateMany:ES,deleteOne:vS,deleteMany:VS,initialize:gS});y(this,"selectors",{selectById:BS,selectByIds:jS})}update(e){const{store:n}=this.client,{updateOne:a}=this.actions,{selectById:c}=this.selectors,r=c(e.uuid)(n.getState()),l={...r,...e};this.dispatch(a(l));const u=this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return u.then(d=>{this.dispatch(a(d))}).catch(d=>{throw this.dispatch(a(r)),d}),[l,u]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,{selectById:r}=this.selectors,l=n.getState(),u=r(e)(l),d=Dt(u.user)(l);this.dispatch(a(u.uuid)),this.dispatch(fn(u.user));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${u.uuid}/`,blockers:[u.uuid],blocks:[]})}catch(h){throw this.dispatch(c(u)),this.dispatch(An(d)),h}}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{organization:e}},n);return this.dispatch(a(c)),c}}class Kg extends dt{constructor(){super(...arguments);y(this,"name","Organization");y(this,"url","/organizations");y(this,"actions",{addOne:kS,addMany:LS,setOne:CS,setMany:US,updateOne:GS,updateMany:NS,deleteOne:HS,deleteMany:WS,initialize:$S});y(this,"selectors",{selectById:ZS,selectByIds:JS})}async add(e){const{addOne:n}=this.actions,a=await this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:e,blockers:[],blocks:[]});return this.dispatch(n(a)),a}async update(e){const{setOne:n}=this.actions,a=await this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return this.dispatch(n(a)),a}async invite(e,n){return this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/${e}/invite/${n}/`,blockers:[],blocks:[]})}async refreshStore(e){const{initialize:n}=this.actions,a=await this.list({},e);return this.dispatch(n(a)),a}}class Yg extends E{constructor(){super(...arguments);y(this,"name","Project Access");y(this,"url","/project-accesses");y(this,"actions",{addOne:cT,addMany:dT,setOne:rT,setMany:uT,updateOne:lT,updateMany:oT,deleteOne:hT,deleteMany:mT,initialize:aT});y(this,"selectors",{selectById:pT,selectByIds:AT})}add(e){var d;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,l=M({...e,created_by:((d=n.getState().userReducer.currentUser)==null?void 0:d.id)??null});this.dispatch(a(l));const u=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(l),blockers:[l.organization_access,l.project],blocks:[l.uuid]});return u.then(h=>{this.dispatch(c(h))}).catch(h=>{throw this.dispatch(r(l.uuid)),h}),[l,u]}bulkAdd(e){var h;const{store:n}=this.client,{addMany:a,deleteMany:c,updateMany:r}=this.actions,l=((h=n.getState().userReducer.currentUser)==null?void 0:h.id)??null,u=e.map(p=>M({...p,created_by:l}));this.dispatch(a(u));const d=this.enqueueRequest({description:O(m.POST,this.name,!0),method:m.POST,url:`${this.url}/bulk/`,payload:{project_accesses:u.map(p=>z(p))},blockers:u.flatMap(p=>[p.project,p.organization_access]),blocks:u.map(p=>p.uuid)});return d.then(p=>{this.dispatch(r(p))}).catch(p=>{throw this.dispatch(c(u.map(A=>A.uuid))),p}),[u,d]}update(e){const{store:n}=this.client,{setOne:a}=this.actions,{selectById:c}=this.selectors,r=c(e.uuid)(n.getState()),l={...r,...e};this.dispatch(a(l));const u=this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[]});return u.then(d=>{this.dispatch(a(d))}).catch(d=>{throw this.dispatch(a(r)),d}),[l,u]}async delete(e){const{store:n}=this.client,{deleteOne:a,addOne:c}=this.actions,{selectById:r}=this.selectors,l=r(e)(n.getState());this.dispatch(a(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(u){throw this.dispatch(c(l)),u}}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{project__organization:e}},n);return this.dispatch(a(c)),c}}class Zg extends Je{constructor(){super(...arguments);y(this,"name","Project Attachment");y(this,"url","/project-attachments");y(this,"actions",{addOne:TT,addMany:IT,setOne:OT,setMany:PT,updateOne:FT,updateMany:gT,deleteOne:bT,deleteMany:_T,initialize:ST});y(this,"selectors",{selectById:RT,selectByIds:wT})}getId(e){return e.uuid}buildModel(e){return M({file:URL.createObjectURL(e.file),file_sha1:e.file_sha1,created_by:e.created_by,file_name:e.file.name,file_type:e.file.type,submitted_at:e.submitted_at,project:e.modelUuid})}buildPayload(e,n){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:n.extension,project:e.project}}async bulkAdd(e){return this._bulkAdd(e.map(n=>({modelUuid:n.projectUuid,file:n.file})))}async delete(e){return this._delete(e)}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{project__organization:e}},n);return this.dispatch(a(c)),c}}class Jg extends E{constructor(){super(...arguments);y(this,"name","Project File");y(this,"url","/project-files");y(this,"actions",{addOne:jT,addMany:qT,setOne:zT,setMany:BT,updateOne:DT,updateMany:$T,deleteOne:UT,deleteMany:CT,initialize:VT});y(this,"selectors",{selectById:WT,selectByIds:KT})}async saveExisting(e){const{setOne:n}=this.actions;if(!e.uuid)throw new Error("You can only use this method to save existing project files. The one provided has no uuid.");const a={...e};delete a.file;const c=this.enqueueRequest({method:m.PATCH,url:`${this.url}/${e.uuid}/`,payload:a,blockers:[e.uuid],blocks:[e.uuid]});return c.then(r=>{this.dispatch(n(r))}),c}saveActive(){const{store:e}=this.client,{setOne:n}=this.actions,a=e.getState(),c=a.projectFileReducer.activeProjectFileId;if(!c)throw new Error("No active project file");const r=a.projectFileReducer.instances[c];if(!r)throw new Error("No active project file");if(!r.bounds&&!r.canvas_bounds)throw new Error("Project file must either have bounds or canvas_bounds set");let l;if(typeof r.file=="string"&&!r.file.startsWith("blob:")){const h={...r};delete h.file,l={method:m.PATCH,url:`${this.url}/${c}/`,payload:h,blockers:[c],blocks:[c]}}else l=new Promise((h,p)=>{this.client.files.uploadFileToS3(r.file_sha1).then(([A])=>{h({method:m.POST,url:`${this.url}/`,payload:{...r,...A},blockers:[c],blocks:[c]})}).catch(p)});const d=Promise.resolve(l).then(h=>this.enqueueRequest(h));return d.then(h=>{this.dispatch(n(h))}),this.dispatch(NT),this.dispatch(kT(null)),this.dispatch(LT(!1)),[r,d]}async delete(e){const{store:n}=this.client,{addOne:a,deleteOne:c}=this.actions,{selectById:r}=this.selectors,l=r(e)(n.getState());if(!l)throw new Error(`Expected project file with uuid ${e} to exist in the store.`);this.dispatch(c(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}`,blockers:[e],blocks:[]})}catch(u){throw this.dispatch(a(l)),u}}async refreshStore(e,n){const{initialize:a}=this.actions,r=(await this.listPaginated({queryParams:{project:e}},n)).flat();return this.dispatch(a(r)),r}}class Xg extends dt{constructor(){super(...arguments);y(this,"name","Project");y(this,"url","/projects");y(this,"actions",{addOne:eI,addMany:xT,setOne:QT,setMany:XT,updateOne:sI,updateMany:tI,deleteOne:iI,deleteMany:nI,initialize:JT});y(this,"selectors",{selectById:dI,selectByIds:rI})}async add(e){const{addOne:n}=this.actions,a=await this.performRequest({method:m.POST,url:`${this.url}/`,payload:z(e)});return this.dispatch(n(a)),a}async update(e){const{updateOne:n}=this.actions,a=await this.performRequest({method:m.PATCH,url:`${this.url}/${e.uuid}/`,payload:z(e)});return this.dispatch(n(a)),a}async delete(e){const{deleteOne:n}=this.actions,a=await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]});return this.dispatch(n(e)),a}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{organization:e}},n);return this.dispatch(a(c)),c}}class Qg extends E{constructor(){super(...arguments);y(this,"name","Team Membership");y(this,"url","/team-memberships");y(this,"actions",{addOne:hI,addMany:mI,setOne:yI,setMany:pI,updateOne:AI,updateMany:fI,deleteOne:SI,deleteMany:TI,initialize:oI});y(this,"selectors",{selectById:PI,selectByIds:FI})}add(e){var d;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,l=M({...e,created_by:((d=n.getState().userReducer.currentUser)==null?void 0:d.id)??null});this.dispatch(a(l));const u=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(l),blockers:[e.team],blocks:[l.uuid]});return u.then(h=>{this.dispatch(c(h))}).catch(()=>{this.dispatch(r(l.uuid))}),[l,u]}bulkAdd(e){var h;const{store:n}=this.client,{addMany:a,setMany:c,deleteMany:r}=this.actions,l=((h=n.getState().userReducer.currentUser)==null?void 0:h.id)??null,u=e.map(p=>M({...p,created_by:l}));this.dispatch(a(u));const d=this.enqueueRequest({description:O(m.POST,this.name,!0),method:m.POST,url:`${this.url}/bulk/`,payload:{team_memberships:u.map(p=>z(p))},blockers:u.map(p=>p.team),blocks:u.map(p=>p.uuid)});return d.then(p=>{this.dispatch(c(p))}).catch(()=>{this.dispatch(r(u.map(p=>p.uuid)))}),[u,d]}async delete(e){const{store:n}=this.client,{deleteOne:a,setOne:c}=this.actions,{selectById:r}=this.selectors,l=n.getState(),u=r(e)(l);if(!u)throw new Error(`Expected team membership with uuid ${e} to exist`);this.dispatch(a(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[e]})}catch(d){throw this.dispatch(c(u)),d}}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{team__organization:e}},n);return this.dispatch(a(c)),c}}class xg extends E{constructor(){super(...arguments);y(this,"name","Team");y(this,"url","/teams");y(this,"actions",{addOne:_I,addMany:MI,setOne:RI,setMany:wI,updateOne:EI,updateMany:vI,deleteOne:VI,deleteMany:zI,initialize:bI});y(this,"selectors",{selectById:jI,selectByIds:qI})}add(e){var d;const{store:n}=this.client,{addOne:a,setOne:c,deleteOne:r}=this.actions,l=M({...e,submitted_at:new Date().toISOString(),created_by:((d=n.getState().userReducer.currentUser)==null?void 0:d.id)??null});this.dispatch(a(l));const u=this.enqueueRequest({description:O(m.POST,this.name,!1),method:m.POST,url:`${this.url}/`,payload:z(l),blockers:[],blocks:[l.uuid]});return u.then(h=>{this.dispatch(c(h))}).catch(()=>{this.dispatch(r(l.uuid))}),[l,u]}update(e){const{store:n}=this.client,{setOne:a}=this.actions,{selectById:c}=this.selectors,r=c(e.uuid)(n.getState());if(!r)throw new Error(`Expected team with uuid ${e.uuid} to exist`);const l={...r,...e};this.dispatch(a(l));const u=this.enqueueRequest({description:O(m.PATCH,this.name,!1),method:m.PATCH,url:`${this.url}/${e.uuid}/`,payload:z(e),blockers:[e.uuid],blocks:[e.uuid]});return u.then(d=>{this.dispatch(a(d))}).catch(()=>{this.dispatch(a(r))}),[l,u]}async delete(e){const{store:n}=this.client,{deleteOne:a,setOne:c}=this.actions,{selectById:r}=this.selectors,l=n.getState(),u=r(e)(l);if(!u)throw new Error(`Expected team with uuid ${e} to exist`);this.dispatch(a(e));try{return await this.enqueueRequest({description:O(m.DELETE,this.name,!1),method:m.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[e]})}catch(d){throw this.dispatch(c(u)),d}}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({queryParams:{organization:e}},n);return this.dispatch(a(c)),c}}class eb extends dt{constructor(){super(...arguments);y(this,"name","User");y(this,"url","/user");y(this,"actions",{addOne:An,addMany:AS,setOne:pS,setMany:yS,updateOne:SS,updateMany:fS,deleteOne:fn,deleteMany:TS,initialize:mS});y(this,"selectors",{selectById:Dt,selectByIds:PS})}async list(e,n){const{organizationUuid:a,...c}=e,r=a?`/organizations/${a}${this.url}s/`:`/${this.url}`;return this.performRequest({method:m.GET,url:r,...c},n)}async refreshStore(e,n){const{initialize:a}=this.actions,c=await this.list({organizationUuid:e},n);return this.dispatch(a(c)),c}}async function Dn(t,s,e,n,a){const c=n instanceof st;c&&s.checkAuth!==!1&&await n.auth.prepareAuth();const r={queryParams:"",isAuthNeeded:!0},{s3url:l,payload:u,headers:d,method:h,queryParams:p,attachmentHash:A,isExternalUrl:f,isAuthNeeded:I,isResponseBlob:F}={...r,...s};let P=s.url;const g=A?await e.files.fetchCache(A):void 0;if(A&&!g)throw new Error(`Cannot upload file ${A} because it's not cached.`);!f&&!P.startsWith("http")&&(!P.startsWith("/")&&!P.startsWith("blob:")&&(P="/"+P),P=t+P);const b=j=>{if(A){if(!l)throw new Error(`No S3 URL for file ${A}`);if("warning"in l)throw new Error(`S3 URL warning for file ${A}`);if(!g)throw new Error(`No file for file ${A}`);const xe=l.fields["x-amz-checksum-sha1"];if(!xe)throw new Error(`No checksum for file ${A}`);return j.set("x-amz-checksum-sha1",xe).field({...u,...l.fields}).attach("file",g)}return j.send(u)},B={[m.GET]:()=>F?nt.get(P.toString()).responseType("blob"):nt.get(P.toString()),[m.POST]:()=>{const j=nt.post(P.toString());return b(j)},[m.PATCH]:()=>{const j=nt.patch(P.toString());return b(j)},[m.PUT]:()=>{const j=nt.put(P.toString());return b(j)},[m.DELETE]:()=>{const j=nt.delete(P.toString());return b(j)}}[h];let V=B();const $=()=>{console.debug("aborting request:",s.url),V.abort()};if(a==null||a.addEventListener("abort",$),I&&c){const j=n.auth.getAuthHeader();V=V.set("Authorization",j)}d&&(V=V.set(d));try{return await V.query(p)}catch(j){const xe=eO(j),hO=xe==null?void 0:xe.status;if(c&&hO===401)return await n.auth.handleUnauthorized(V,xe),V.query(p);throw new C({response:xe,innerError:j,discard:zn.includes(hO)})}finally{a==null||a.removeEventListener("abort",$)}}class tb{constructor(s){y(this,"store");this.store=s}_performRequest(s,e,n,a){const c=new Gt,r={...e,uuid:e.uuid??Qe.v4()};return Dn(s,r,this,n,a).then(l=>{c.resolve(l.body)}).catch(l=>{l instanceof Error?c.reject(l):c.reject(new Error((l??ct).toString()))}),c}async performRequest(s,e,n,a){return this._performRequest(s,e,n,a).then(c=>{if(c instanceof C)throw c;return c})}async enqueueRequest(s,e,n){return this._enqueueRequest(s,e,n).then(a=>{if(a instanceof C)throw a;return a})}_enqueueRequest(s,e,n){const a=new Gt,c={...s,BASE_URL:e,serviceName:n},r=this.store.dispatch(eT(c)),l=d=>{if(d)a.resolve(d.body);else{const h=new C({message:"Could not get a response from the server.",response:d,discard:!0});a.reject(h)}},u=d=>{d instanceof C?d.options.discard=!0:(console.error("Received an unexpected error while processing a request:",d,`
15
+ Converting error to APIError and discarding.`),d=new C({message:"An error occurred while processing the request.",innerError:d,discard:!0})),a.reject(d)};return r.then(l,u),a}async performPagination(s,e,n,a,c){const r={...e,queryParams:{...e.queryParams,paginate:!0,limit:n}},{method:l}=r,u=[];let d=await this.performRequest(s,r,a,c);for(u.push(d.results);d.next;)d=await this.performRequest(s,{url:d.next,method:l},a,c),u.push(d.results);return u}}class rt{constructor(){y(this,"graph");y(this,"requestAttemptCounter");this.graph=new IO.DepGraph,this.requestAttemptCounter={}}static _fromOutbox(s){const e=new rt;for(let n=0;n<s.length;n++){const a=s[n];if(!a){console.error("Outbox item was undefined");continue}e.sneakRequest(a);for(let c=0;c<n;c++){const r=s[c];if(!r){console.error("Previous outbox item was undefined");continue}r.payload.uuid!==a.payload.uuid&&r.payload.blocks.some(l=>a.payload.blockers.includes(l))&&rt._addDependency(a.payload.uuid,r.payload.uuid,e.graph)}}return e}_addDependency(s,e){rt._addDependency(s,e,this.graph)}static _addDependency(s,e,n){if(s===e)throw new Error(`Tried to add dependency from node to itself: ${s}`);if(!n.hasNode(s))throw new Error(`Tried to add dependency from non-existent node: ${s} (to node: ${e})`);if(!n.hasNode(e))throw new Error(`Tried to add dependency to non-existent node: ${e} (from node: ${s})`);n.addDependency(s,e)}addRequest(s){if(this.graph.addNode(s.payload.uuid,s),!(s.payload.blockers.length===0||this.graph.size()===1))for(const e of this.graph.overallOrder()){if(e===s.payload.uuid)continue;const n=this.graph.getNodeData(e),a=new Set(n.payload.blocks);s.payload.blockers.some(c=>a.has(c))&&this._addDependency(s.payload.uuid,e)}}insertRequest(s){this.graph.addNode(s.payload.uuid,s);for(const e of this.graph.overallOrder()){if(e===s.payload.uuid)continue;const n=this.graph.getNodeData(e),a=new Set(s.payload.blocks);n.payload.blockers.some(c=>a.has(c))&&this._addDependency(e,s.payload.uuid)}}sneakRequest(s){this.graph.addNode(s.payload.uuid,s)}_getNextNode(){const s=this.graph.overallOrder(!0);let e=1/0,n;for(const a of s){const c=this.requestAttemptCounter[a]||0;c<e&&(e=c,n=a)}return n}peek(){const s=this._getNextNode();if(s)return this.graph.getNodeData(s)}remove(s){this.graph.removeNode(s),delete this.requestAttemptCounter[s]}pop(){const s=this.peek();return s&&this.graph.removeNode(s.payload.uuid),s}getQueue(){const s=this.graph.overallOrder().map(n=>this.graph.getNodeData(n)),e=this._getNextNode();if(e){const n=this.graph.getNodeData(e),a=s.findIndex(c=>c.payload.uuid===n.payload.uuid);a!==-1&&(s.splice(a,1),s.unshift(n))}return s}getReady(){let s=this.graph.overallOrder(!0).map(e=>this.graph.getNodeData(e));return s=s.sort((e,n)=>e.meta.offline.effect.timestamp.localeCompare(n.meta.offline.effect.timestamp)),s=s.sort((e,n)=>{const a=this.requestAttemptCounter[e.payload.uuid]||0,c=this.requestAttemptCounter[n.payload.uuid]||0;return a-c}),s}registerRetry(s){this.requestAttemptCounter[s]=(this.requestAttemptCounter[s]||0)+1}}let tO;function sO(t){tO=t}function ut(){return tO}let iO;function nO(t){iO=t}function aO(){return iO}let $n=null;function it(){const t=ut();if(!t)return console.warn("Client store not set; cannot get outbox coordinator yet."),null;if($n)return $n;const s=t.getState().offline.outbox,e=rt._fromOutbox(s);return $n=e,e}const sb=(t,s)=>{const e=new s(t);return nO(e),sO(t),e};class ib{constructor(s){y(this,"_all");y(this,"_previous");this._all=[s],this._previous=s,this.then=this.then.bind(this),this.compile=this.compile.bind(this)}then(s){return this._previous&&(this._previous.next=s),this._all.push(s),this._previous=s,{then:this.then,compile:this.compile}}compile(){return this._all}}class Un{constructor(){y(this,"next");this.next=null}then(s){return new ib(this).then(s)}async run(s){if(this.next)return this.next.run(s);{if(console.debug("Middleware finished. Performing request:",s.payload.url),!ut())throw new Error("Client store not set");const n=aO();if(!n)throw new Error("Client SDK not set");return XI(s,n)}}}class cO extends Un{async run(s){return super.run(s)}}class dO extends Un{async run(s){return super.run(s)}}const rO=new cO().then(new dO).compile();function uO(t){var s;return(s=rO[0])==null?void 0:s.run(t)}var lO=(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))(lO||{});i.ALL_MIDDLEWARE=rO,i.APIError=C,i.ATTACHMENT_MODEL_DEFAULT_PAGE_SIZE=kI,i.AgentService=kF,i.AssetAttachmentService=NF,i.AssetProcedureService=ZF,i.AssetProcedureStepFieldValuesAttachmentService=xF,i.AssetProcedureStepFieldValuesService=eg,i.AssetProcedureStepFieldsAttachmentService=XF,i.AssetProcedureStepFieldsService=QF,i.AssetProcedureStepService=tg,i.AssetProcedureTypeAttachmentService=GF,i.AssetProcedureTypeFieldValuesAttachmentService=KF,i.AssetProcedureTypeFieldValuesService=YF,i.AssetProcedureTypeFieldsAttachmentService=HF,i.AssetProcedureTypeFieldsService=WF,i.AssetProcedureTypeService=JF,i.AssetService=sg,i.AssetStageCompletionService=ig,i.AssetStageService=ng,i.AssetStatusType=Hn,i.AssetTypeAttachmentService=ag,i.AssetTypeFieldValuesAttachmentService=rg,i.AssetTypeFieldValuesService=ug,i.AssetTypeFieldsAttachmentService=cg,i.AssetTypeFieldsService=dg,i.AssetTypeIdentifierService=lg,i.AssetTypeIdentifierValueService=og,i.AssetTypeService=hg,i.AssetTypeStatusService=mg,i.AttachmentModel=Wn,i.BaseApiService=st,i.BaseModelApiService=dt,i.BaseOfflineAttachmentModelService=Je,i.BaseOfflineModelApiService=E,i.BaseSDK=tb,i.COMMON_AUTO_FIELDS=xn,i.DEFAULT_ISSUE_PRIORITY=OO,i.DEFAULT_PAGE_SIZE=LI,i.DISCARD_HTTP_STATUSES=zn,i.DeferredPromise=Gt,i.DocumentAttachmentService=yg,i.DocumentService=pg,i.EMPTY_ARRAY=kn,i.EMPTY_OBJECT=Nn,i.EmailDomainsService=Ag,i.EmailVerificationService=fg,i.FileService=Tg,i.FormIdentifierService=Ig,i.FormIdentifierValueService=Og,i.FormRevisionAttachmentService=Pg,i.FormRevisionService=Fg,i.FormService=gg,i.FormSubmissionAttachmentService=bg,i.FormSubmissionService=_g,i.GeoImageService=Mg,i.HttpMethod=m,i.IssueAssociationService=Rg,i.IssueAttachmentService=wg,i.IssueCommentAttachmentService=Eg,i.IssueCommentService=vg,i.IssuePriority=Nt,i.IssueService=Vg,i.IssueStatusType=Kn,i.IssueTypeAttachmentService=zg,i.IssueTypeFieldValuesAttachmentService=qg,i.IssueTypeFieldValuesService=Dg,i.IssueTypeFieldsAttachmentService=Bg,i.IssueTypeFieldsService=jg,i.IssueTypeIdentifierService=$g,i.IssueTypeIdentifierValueService=Ug,i.IssueTypeService=Cg,i.IssueTypeStatusService=Lg,i.IssueUpdateChange=U,i.IssueUpdateService=kg,i.JWTService=Hg,i.MAX_SERVICE_BATCH_SIZE=k,i.OUTBOX_RETRY_DELAY=Yn,i.OfflineAnalyticsMiddleware=cO,i.OfflineMiddleware=Un,i.OrganizationAccessLevel=Gn,i.OrganizationAccessService=Wg,i.OrganizationService=Kg,i.OutboxCoordinator=rt,i.ProjectAccessService=Yg,i.ProjectAttachmentService=Zg,i.ProjectFileService=Jg,i.ProjectService=Xg,i.RESET_ORGANIZATION_STATE=w,i.RESET_PROJECT_STATE=D,i.RESET_STATE=_,i.RateLimitingMiddleware=dO,i.SelectorBuilder=HO,i.TeamMembershipService=Qg,i.TeamService=xg,i.UNKNOWN_ERROR_MESSAGE=ct,i.UserService=eb,i.VERSION_REDUCER_KEY=lt,i.VerificationCodeType=lO,i._setLatestRetryTime=sT,i.addAsset=wr,i.addAssetAttachment=ya,i.addAssetAttachments=xt,i.addAssetProcedure=kc,i.addAssetProcedureStep=fr,i.addAssetProcedureStepFieldValues=tr,i.addAssetProcedureStepFieldValuesAttachment=kd,i.addAssetProcedureStepFieldValuesAttachments=Ps,i.addAssetProcedureStepFieldValuesMany=sr,i.addAssetProcedureStepFields=wd,i.addAssetProcedureStepFieldsAttachment=pd,i.addAssetProcedureStepFieldsAttachments=Ad,i.addAssetProcedureStepFieldsMany=Ed,i.addAssetProcedureSteps=Sr,i.addAssetProcedureType=td,i.addAssetProcedureTypeAttachment=Ma,i.addAssetProcedureTypeAttachments=Ra,i.addAssetProcedureTypeFieldValues=Rc,i.addAssetProcedureTypeFieldValuesAttachment=pc,i.addAssetProcedureTypeFieldValuesAttachments=rs,i.addAssetProcedureTypeFieldValuesMany=wc,i.addAssetProcedureTypeFields=tc,i.addAssetProcedureTypeFieldsAttachment=La,i.addAssetProcedureTypeFieldsAttachments=ka,i.addAssetProcedureTypeFieldsMany=sc,i.addAssetProcedureTypes=sd,i.addAssetProcedures=ms,i.addAssetStage=au,i.addAssetStageCompletion=kr,i.addAssetStageCompletions=Nr,i.addAssetStages=cu,i.addAssetType=co,i.addAssetTypeAttachment=Au,i.addAssetTypeAttachments=qs,i.addAssetTypeFieldValues=Al,i.addAssetTypeFieldValuesAttachment=il,i.addAssetTypeFieldValuesAttachments=Ns,i.addAssetTypeFieldValuesMany=fl,i.addAssetTypeFields=Nu,i.addAssetTypeFieldsAttachment=wu,i.addAssetTypeFieldsAttachments=Eu,i.addAssetTypeFieldsMany=Gu,i.addAssetTypeIdentifier=El,i.addAssetTypeIdentifierValue=Gl,i.addAssetTypeIdentifierValues=Hl,i.addAssetTypeIdentifiers=vl,i.addAssetTypeStatus=To,i.addAssetTypeStatuses=Io,i.addAssetTypes=ro,i.addAssets=ws,i.addConversation=ra,i.addConversations=WO,i.addDocument=Jo,i.addDocumentAttachment=qo,i.addDocumentAttachments=Do,i.addDocuments=Xo,i.addEmailDomain=lh,i.addEmailDomains=oh,i.addForm=Mm,i.addFormIdentifier=wh,i.addFormIdentifierValue=Nh,i.addFormIdentifierValues=Gh,i.addFormIdentifiers=Eh,i.addFormRevision=hi,i.addFormRevisionAttachment=im,i.addFormRevisionAttachments=nm,i.addFormRevisions=mi,i.addFormSubmission=ty,i.addFormSubmissionAttachment=Lm,i.addFormSubmissionAttachments=Ii,i.addFormSubmissions=_i,i.addForms=Rm,i.addGeoImage=yy,i.addGeoImages=py,i.addIssue=Rp,i.addIssueAssociation=Ey,i.addIssueAssociations=et,i.addIssueAttachment=ky,i.addIssueAttachments=zi,i.addIssueComment=pp,i.addIssueCommentAttachment=tp,i.addIssueCommentAttachments=sp,i.addIssueComments=Ap,i.addIssueType=vf,i.addIssueTypeAttachment=Lp,i.addIssueTypeAttachments=kp,i.addIssueTypeFieldValues=pA,i.addIssueTypeFieldValuesAttachment=NA,i.addIssueTypeFieldValuesAttachments=Ji,i.addIssueTypeFieldValuesMany=AA,i.addIssueTypeFields=wA,i.addIssueTypeFieldsAttachment=tA,i.addIssueTypeFieldsAttachments=sA,i.addIssueTypeFieldsMany=EA,i.addIssueTypeIdentifier=sf,i.addIssueTypeIdentifierValue=ff,i.addIssueTypeIdentifierValues=Sf,i.addIssueTypeIdentifiers=nf,i.addIssueTypeStatus=Hf,i.addIssueTypeStatuses=Wf,i.addIssueTypes=Vf,i.addIssueUpdate=un,i.addIssueUpdates=ln,i.addIssues=Li,i.addOrganization=kS,i.addOrganizationAccess=bS,i.addOrganizationAccesses=_S,i.addOrganizations=LS,i.addProject=eI,i.addProjectAccess=cT,i.addProjectAccesses=dT,i.addProjectAttachment=TT,i.addProjectAttachments=IT,i.addProjectFile=jT,i.addProjectFiles=qT,i.addProjects=xT,i.addTeam=_I,i.addTeamMembership=hI,i.addTeamMemberships=mI,i.addTeams=MI,i.addUser=An,i.addUsers=AS,i.agentsReducer=oa,i.agentsSlice=Jt,i.areArraysEqual=bO,i.assetAttachmentReducer=ga,i.assetAttachmentSlice=Qt,i.assetProcedureReducer=Yc,i.assetProcedureSlice=hs,i.assetProcedureStepFieldValuesAttachmentReducer=Qd,i.assetProcedureStepFieldValuesAttachmentSlice=Os,i.assetProcedureStepFieldValuesReducer=hr,i.assetProcedureStepFieldValuesSlice=bs,i.assetProcedureStepFieldsAttachmentReducer=_d,i.assetProcedureStepFieldsAttachmentSlice=fs,i.assetProcedureStepFieldsReducer=Ud,i.assetProcedureStepFieldsSlice=Ts,i.assetProcedureStepReducer=Fr,i.assetProcedureStepSlice=_s,i.assetProcedureTypeAttachmentReducer=ja,i.assetProcedureTypeAttachmentSlice=ss,i.assetProcedureTypeFieldValuesAttachmentReducer=Oc,i.assetProcedureTypeFieldValuesAttachmentSlice=ds,i.assetProcedureTypeFieldValuesReducer=qc,i.assetProcedureTypeFieldValuesSlice=os,i.assetProcedureTypeFieldsAttachmentReducer=Za,i.assetProcedureTypeFieldsAttachmentSlice=ns,i.assetProcedureTypeFieldsReducer=uc,i.assetProcedureTypeFieldsSlice=cs,i.assetProcedureTypeReducer=ud,i.assetProcedureTypeSlice=ps,i.assetReducer=Ur,i.assetSlice=Rs,i.assetStageCompletionReducer=Jr,i.assetStageCompletionSlice=vs,i.assetStageReducer=ou,i.assetStageSlice=Vs,i.assetTypeAttachmentReducer=_u,i.assetTypeAttachmentSlice=js,i.assetTypeFieldValuesAttachmentReducer=ml,i.assetTypeFieldValuesAttachmentSlice=ks,i.assetTypeFieldValuesReducer=Ml,i.assetTypeFieldValuesSlice=Ws,i.assetTypeFieldsAttachmentReducer=Cu,i.assetTypeFieldsAttachmentSlice=Us,i.assetTypeFieldsReducer=el,i.assetTypeFieldsSlice=Ls,i.assetTypeIdentifierReducer=Ll,i.assetTypeIdentifierSlice=Ks,i.assetTypeIdentifierValueReducer=to,i.assetTypeIdentifierValueSlice=Zs,i.assetTypeReducer=Ao,i.assetTypeSlice=Js,i.assetTypeStatusReducer=Eo,i.assetTypeStatusSlice=Qs,i.assetTypeStatusSortFn=sa,i.authReducer=zo,i.authSlice=Mt,i.baseReducer=MF,i.baseReducers=Vn,i.blobToBase64=BO,i.clearTokens=EP,i.constructUploadedFilePayloads=zO,i.createModelAdapter=R,i.createOfflineAction=QS,i.createPayload=z,i.createSelectionAdapter=PO,i.deleteAsset=Vr,i.deleteAssetAttachment=Ta,i.deleteAssetAttachments=es,i.deleteAssetProcedure=Hc,i.deleteAssetProcedureStep=Or,i.deleteAssetProcedureStepFieldValues=dr,i.deleteAssetProcedureStepFieldValuesAttachment=Kd,i.deleteAssetProcedureStepFieldValuesAttachments=Fs,i.deleteAssetProcedureStepFieldValuesMany=rr,i.deleteAssetProcedureStepFields=jd,i.deleteAssetProcedureStepFieldsAttachment=Od,i.deleteAssetProcedureStepFieldsAttachments=Pd,i.deleteAssetProcedureStepFieldsMany=qd,i.deleteAssetProcedureSteps=Pr,i.deleteAssetProcedureType=ad,i.deleteAssetProcedureTypeAttachment=za,i.deleteAssetProcedureTypeAttachments=Ba,i.deleteAssetProcedureTypeFieldValues=Bc,i.deleteAssetProcedureTypeFieldValuesAttachment=Ic,i.deleteAssetProcedureTypeFieldValuesAttachments=us,i.deleteAssetProcedureTypeFieldValuesMany=jc,i.deleteAssetProcedureTypeFields=dc,i.deleteAssetProcedureTypeFieldsAttachment=Ka,i.deleteAssetProcedureTypeFieldsAttachments=Ya,i.deleteAssetProcedureTypeFieldsMany=rc,i.deleteAssetProcedureTypes=cd,i.deleteAssetProcedures=ys,i.deleteAssetStage=uu,i.deleteAssetStageCompletion=Yr,i.deleteAssetStageCompletions=Zr,i.deleteAssetStages=lu,i.deleteAssetType=oo,i.deleteAssetTypeAttachment=Ou,i.deleteAssetTypeAttachments=Ds,i.deleteAssetTypeFieldValues=Pl,i.deleteAssetTypeFieldValuesAttachment=rl,i.deleteAssetTypeFieldValuesAttachments=Gs,i.deleteAssetTypeFieldValuesMany=Fl,i.deleteAssetTypeFields=Zu,i.deleteAssetTypeFieldsAttachment=ju,i.deleteAssetTypeFieldsAttachments=qu,i.deleteAssetTypeFieldsMany=Ju,i.deleteAssetTypeIdentifier=ql,i.deleteAssetTypeIdentifierValue=Jl,i.deleteAssetTypeIdentifierValues=Xl,i.deleteAssetTypeIdentifiers=Dl,i.deleteAssetTypeStatus=bo,i.deleteAssetTypeStatuses=_o,i.deleteAssetTypes=ho,i.deleteAssets=Es,i.deleteConversation=ZO,i.deleteConversations=JO,i.deleteDocument=sh,i.deleteDocumentAttachment=ko,i.deleteDocumentAttachments=No,i.deleteDocuments=ih,i.deleteEmailDomain=Ah,i.deleteEmailDomains=fh,i.deleteForm=zm,i.deleteFormIdentifier=jh,i.deleteFormIdentifierValue=Zh,i.deleteFormIdentifierValues=Jh,i.deleteFormIdentifiers=qh,i.deleteFormRevision=yi,i.deleteFormRevisionAttachment=um,i.deleteFormRevisionAttachments=lm,i.deleteFormRevisions=pi,i.deleteFormSubmission=ny,i.deleteFormSubmissionAttachment=Wm,i.deleteFormSubmissionAttachments=Oi,i.deleteFormSubmissions=Mi,i.deleteForms=Bm,i.deleteGeoImage=Sy,i.deleteGeoImages=Ty,i.deleteIssue=zp,i.deleteIssueAssociation=vy,i.deleteIssueAssociations=tt,i.deleteIssueAttachment=Ky,i.deleteIssueAttachments=Bi,i.deleteIssueComment=Op,i.deleteIssueCommentAttachment=dp,i.deleteIssueCommentAttachments=rp,i.deleteIssueComments=Pp,i.deleteIssueType=Df,i.deleteIssueTypeAttachment=Kp,i.deleteIssueTypeAttachments=Yp,i.deleteIssueTypeFieldValues=OA,i.deleteIssueTypeFieldValuesAttachment=YA,i.deleteIssueTypeFieldValuesAttachments=Xi,i.deleteIssueTypeFieldValuesMany=PA,i.deleteIssueTypeFields=jA,i.deleteIssueTypeFieldsAttachment=dA,i.deleteIssueTypeFieldsAttachments=rA,i.deleteIssueTypeFieldsMany=qA,i.deleteIssueTypeIdentifier=uf,i.deleteIssueTypeIdentifierValue=Ff,i.deleteIssueTypeIdentifierValues=gf,i.deleteIssueTypeIdentifiers=lf,i.deleteIssueTypeStatus=Xf,i.deleteIssueTypeStatuses=Qf,i.deleteIssueTypes=$f,i.deleteIssueUpdate=on,i.deleteIssueUpdates=hn,i.deleteIssues=ki,i.deleteOrganization=HS,i.deleteOrganizationAccess=vS,i.deleteOrganizationAccesses=VS,i.deleteOrganizations=WS,i.deleteProject=iI,i.deleteProjectAccess=hT,i.deleteProjectAccesses=mT,i.deleteProjectAttachment=bT,i.deleteProjectAttachments=_T,i.deleteProjectFile=UT,i.deleteProjectFiles=CT,i.deleteProjects=nI,i.deleteTeam=VI,i.deleteTeamMembership=SI,i.deleteTeamMemberships=TI,i.deleteTeams=zI,i.deleteUser=fn,i.deleteUsers=TS,i.dequeue=JI,i.discard=QI,i.documentAttachmentReducer=Ko,i.documentAttachmentSlice=ei,i.documentSlice=si,i.documentsReducer=nh,i.downloadFile=jO,i.downloadInMemoryFile=VO,i.emailDomainsReducer=Oh,i.emailDomainsSlice=ni,i.emailRegex=kO,i.enqueue=ZI,i.enqueueRequest=eT,i.extractResponseFromError=eO,i.fallbackToEmptyArray=T,i.fallbackToEmptyObject=ft,i.fileReducer=_h,i.fileSlice=ci,i.fileToBlob=Xn,i.formIdentifierReducer=Ch,i.formIdentifierSlice=di,i.formIdentifierValueReducer=em,i.formIdentifierValueSlice=ui,i.formReducer=jm,i.formRevisionAttachmentReducer=ym,i.formRevisionAttachmentSlice=li,i.formRevisionReducer=gm,i.formRevisionsSlice=oi,i.formSlice=fi,i.formSubmissionAttachmentReducer=Jm,i.formSubmissionAttachmentSlice=Ti,i.formSubmissionReducer=uy,i.formSubmissionSlice=bi,i.geoImageReducer=Fy,i.geoImageSlice=wi,i.getAssetProcedureStepSubTree=ta,i.getAssetProcedureStepTrees=NO,i.getClientSDK=aO,i.getClientStore=ut,i.getDocumentSubTree=aa,i.getDocumentTrees=GO,i.getFileIdentifier=vO,i.getFileS3Key=Yt,i.getLocalDateString=Zn,i.getLocalRelativeDateString=wO,i.getOutboxCoordinator=it,i.getRenamedFile=Jn,i.getRequestDescription=O,i.hashFile=at,i.initSDK=sb,i.initializeAssetAttachments=ma,i.initializeAssetProcedureStepFieldValues=er,i.initializeAssetProcedureStepFieldValuesAttachments=Ld,i.initializeAssetProcedureStepFields=Rd,i.initializeAssetProcedureStepFieldsAttachments=yd,i.initializeAssetProcedureSteps=yr,i.initializeAssetProcedureTypeAttachments=_a,i.initializeAssetProcedureTypeFieldValues=Mc,i.initializeAssetProcedureTypeFieldValuesAttachments=yc,i.initializeAssetProcedureTypeFields=ec,i.initializeAssetProcedureTypeFieldsAttachments=Ca,i.initializeAssetProcedureTypes=ed,i.initializeAssetProcedures=Lc,i.initializeAssetStageCompletions=Lr,i.initializeAssetStages=su,i.initializeAssetTypeAttachments=pu,i.initializeAssetTypeFieldValues=pl,i.initializeAssetTypeFieldValuesAttachments=sl,i.initializeAssetTypeFields=ku,i.initializeAssetTypeFieldsAttachments=Ru,i.initializeAssetTypeIdentifierValues=Nl,i.initializeAssetTypeIdentifiers=wl,i.initializeAssetTypeStatuses=So,i.initializeAssetTypes=io,i.initializeAssets=Rr,i.initializeConversations=da,i.initializeDocumentAttachments=jo,i.initializeDocuments=Zo,i.initializeEmailDomains=uh,i.initializeFormIdentifierValues=kh,i.initializeFormIdentifiers=Rh,i.initializeFormRevisionAttachments=sm,i.initializeFormRevisions=Am,i.initializeFormSubmissionAttachments=Cm,i.initializeFormSubmissions=Qm,i.initializeForms=_m,i.initializeGeoImages=oy,i.initializeIssueAssociations=by,i.initializeIssueAttachments=Ly,i.initializeIssueCommentAttachments=ep,i.initializeIssueComments=yp,i.initializeIssueTypeAttachments=Cp,i.initializeIssueTypeFieldValues=yA,i.initializeIssueTypeFieldValuesAttachments=kA,i.initializeIssueTypeFields=RA,i.initializeIssueTypeFieldsAttachments=eA,i.initializeIssueTypeIdentifierValues=Af,i.initializeIssueTypeIdentifiers=tf,i.initializeIssueTypeStatuses=Gf,i.initializeIssueTypes=Ef,i.initializeIssueUpdates=iS,i.initializeIssues=Mp,i.initializeOrganizationAccesses=gS,i.initializeOrganizations=$S,i.initializeProjectAccesses=aT,i.initializeProjectAttachments=ST,i.initializeProjectFiles=VT,i.initializeProjects=JT,i.initializeTeamMemberships=oI,i.initializeTeams=bI,i.initializeUsers=mS,i.isToday=RO,i.issueAssociationReducer=Uy,i.issueAssociationSlice=vi,i.issueAttachmentReducer=Qy,i.issueAttachmentSlice=Vi,i.issueCommentAttachmentReducer=hp,i.issueCommentAttachmentSlice=qi,i.issueCommentReducer=bp,i.issueCommentSlice=$i,i.issueReducer=$p,i.issueSlice=Ci,i.issueTypeAttachmentReducer=Qp,i.issueTypeAttachmentSlice=Ni,i.issueTypeFieldValuesAttachmentReducer=xA,i.issueTypeFieldValuesAttachmentSlice=Zi,i.issueTypeFieldValuesReducer=_A,i.issueTypeFieldValuesSlice=Ki,i.issueTypeFieldsAttachmentReducer=hA,i.issueTypeFieldsAttachmentSlice=Hi,i.issueTypeFieldsReducer=CA,i.issueTypeFieldsSlice=Yi,i.issueTypeIdentifierReducer=yf,i.issueTypeIdentifierSlice=xi,i.issueTypeIdentifierValueReducer=Rf,i.issueTypeIdentifierValueSlice=tn,i.issueTypeReducer=kf,i.issueTypeSlice=sn,i.issueTypeStatusReducer=tS,i.issueTypeStatusSlice=an,i.issueTypeStatusSortFn=ia,i.issueUpdateReducer=oS,i.issueUpdateSlice=rn,i.logOnlyOnce=qO,i.markAsDeleted=tT,i.markForDeletion=oF,i.memoize=Wt,i.organizationAccessReducer=zS,i.organizationAccessSlice=Tn,i.organizationReducer=XS,i.organizationSlice=In,i.outboxReducer=iT,i.outboxSlice=On,i.overmapEnhancer=qF,i.overmapReducer=RF,i.overmapReducers=CI,i.performRequest=Dn,i.performRequestFromAction=XI,i.projectAccessReducer=yT,i.projectAccessSlice=Pn,i.projectAttachmentReducer=ET,i.projectAttachmentSlice=gn,i.projectFileReducer=YT,i.projectFileSlice=_n,i.projectReducer=aI,i.projectSlice=Mn,i.rehydratedReducer=uI,i.rehydratedSlice=Rn,i.restructureSelectorWithArgs=S,i.runMiddleware=uO,i.saveActiveProjectFileBounds=NT,i.selectAccessToken=vP,i.selectAccessesByUserOfProject=mF,i.selectAccessibleProjects=SF,i.selectActiveOrganizationAccess=dF,i.selectActiveProjectFileId=AF,i.selectAllDocumentAttachments=ti,i.selectAssetAttachmentById=Oa,i.selectAssetAttachmentMapping=Ia,i.selectAssetAttachments=ts,i.selectAssetAttachmentsByIds=Pa,i.selectAssetById=Dr,i.selectAssetProcedureById=Xc,i.selectAssetProcedureStepById=gr,i.selectAssetProcedureStepFieldValues=ot,i.selectAssetProcedureStepFieldValuesAttachmentById=Zd,i.selectAssetProcedureStepFieldValuesAttachments=gs,i.selectAssetProcedureStepFieldValuesAttachmentsByIds=Jd,i.selectAssetProcedureStepFieldValuesAttachmentsMapping=Yd,i.selectAssetProcedureStepFieldValuesById=lr,i.selectAssetProcedureStepFieldValuesByIds=or,i.selectAssetProcedureStepFieldValuesMapping=ur,i.selectAssetProcedureStepFieldValuesOfAsset=oP,i.selectAssetProcedureStepFieldValuesOfAssetProcedure=hP,i.selectAssetProcedureStepFieldValuesOfAssetProcedureStep=mP,i.selectAssetProcedureStepFields=Pt,i.selectAssetProcedureStepFieldsAttachmentById=gd,i.selectAssetProcedureStepFieldsAttachments=Ss,i.selectAssetProcedureStepFieldsAttachmentsByIds=bd,i.selectAssetProcedureStepFieldsAttachmentsMapping=Fd,i.selectAssetProcedureStepFieldsById=Dd,i.selectAssetProcedureStepFieldsByIds=$d,i.selectAssetProcedureStepFieldsMapping=Is,i.selectAssetProcedureStepFieldsOfAssetProcedureStep=rP,i.selectAssetProcedureStepMapping=Ft,i.selectAssetProcedureSteps=Ms,i.selectAssetProcedureStepsByIds=br,i.selectAssetProcedureStepsMappingOfAssetProcedureType=yP,i.selectAssetProcedureStepsOfAssetProcedureType=pP,i.selectAssetProcedureTypeAttachmentById=Da,i.selectAssetProcedureTypeAttachmentMapping=qa,i.selectAssetProcedureTypeAttachments=is,i.selectAssetProcedureTypeAttachmentsByIds=$a,i.selectAssetProcedureTypeById=od,i.selectAssetProcedureTypeFieldValues=It,i.selectAssetProcedureTypeFieldValuesAttachmentById=Fc,i.selectAssetProcedureTypeFieldValuesAttachments=ls,i.selectAssetProcedureTypeFieldValuesAttachmentsByIds=gc,i.selectAssetProcedureTypeFieldValuesAttachmentsMapping=Pc,i.selectAssetProcedureTypeFieldValuesById=$c,i.selectAssetProcedureTypeFieldValuesByIds=Uc,i.selectAssetProcedureTypeFieldValuesMapping=Dc,i.selectAssetProcedureTypeFieldValuesOfAsset=iP,i.selectAssetProcedureTypeFields=Tt,i.selectAssetProcedureTypeFieldsAttachmentById=Xa,i.selectAssetProcedureTypeFieldsAttachments=as,i.selectAssetProcedureTypeFieldsAttachmentsByIds=Qa,i.selectAssetProcedureTypeFieldsAttachmentsMapping=Ja,i.selectAssetProcedureTypeFieldsById=oc,i.selectAssetProcedureTypeFieldsByIds=hc,i.selectAssetProcedureTypeFieldsMapping=lc,i.selectAssetProcedureTypeFieldsOfAssetProcedureType=tP,i.selectAssetProcedureTypes=As,i.selectAssetProcedureTypesByIds=hd,i.selectAssetProcedureTypesMapping=ld,i.selectAssetProcedureTypesOfOrganization=cP,i.selectAssetProcedures=Ot,i.selectAssetProceduresByIds=Qc,i.selectAssetProceduresMapping=Zc,i.selectAssetProceduresOfAssetProcedureType=Jc,i.selectAssetProceduresOfAssetType=aP,i.selectAssetStageById=hu,i.selectAssetStageCompletionById=xr,i.selectAssetStageCompletionMapping=Xr,i.selectAssetStageCompletions=Qr,i.selectAssetStageCompletionsByIds=eu,i.selectAssetStages=Bs,i.selectAssetStagesByIds=mu,i.selectAssetStagesMappingOfAssetProcedureType=fP,i.selectAssetStagesOfAssetProcedureType=SP,i.selectAssetTypeAttachmentById=Fu,i.selectAssetTypeAttachmentMapping=Pu,i.selectAssetTypeAttachments=$s,i.selectAssetTypeAttachmentsByIds=gu,i.selectAssetTypeById=yo,i.selectAssetTypeFieldValues=bt,i.selectAssetTypeFieldValuesAttachmentById=ll,i.selectAssetTypeFieldValuesAttachments=Hs,i.selectAssetTypeFieldValuesAttachmentsByIds=ol,i.selectAssetTypeFieldValuesAttachmentsMapping=ul,i.selectAssetTypeFieldValuesById=bl,i.selectAssetTypeFieldValuesByIds=_l,i.selectAssetTypeFieldValuesMapping=gl,i.selectAssetTypeFieldValuesOfAsset=PP,i.selectAssetTypeFields=ht,i.selectAssetTypeFieldsAttachmentById=$u,i.selectAssetTypeFieldsAttachments=Cs,i.selectAssetTypeFieldsAttachmentsByIds=Uu,i.selectAssetTypeFieldsAttachmentsMapping=Du,i.selectAssetTypeFieldsById=Qu,i.selectAssetTypeFieldsByIds=xu,i.selectAssetTypeFieldsMapping=Xu,i.selectAssetTypeFieldsOfAssetType=IP,i.selectAssetTypeIdentifierById=Ul,i.selectAssetTypeIdentifierMapping=$l,i.selectAssetTypeIdentifierValueById=xl,i.selectAssetTypeIdentifierValueMapping=Ql,i.selectAssetTypeIdentifierValues=_t,i.selectAssetTypeIdentifierValuesByIds=eo,i.selectAssetTypeIdentifierValuesOfAsset=bP,i.selectAssetTypeIdentifierValuesOfIdentifier=_P,i.selectAssetTypeIdentifiers=Ys,i.selectAssetTypeIdentifiersByIds=Cl,i.selectAssetTypeIdentifiersOfAssetType=gP,i.selectAssetTypeStatusById=Ro,i.selectAssetTypeStatusMapping=Mo,i.selectAssetTypeStatuses=xs,i.selectAssetTypeStatusesByIds=wo,i.selectAssetTypeStatusesOfAssetType=RP,i.selectAssetTypeValuesOfAssetType=FP,i.selectAssetTypes=Xs,i.selectAssetTypesByIds=po,i.selectAssetTypesMapping=mo,i.selectAssetTypesOfOrganization=MP,i.selectAssets=gt,i.selectAssetsByIds=$r,i.selectAssetsMapping=jr,i.selectAssetsOfAssetType=qr,i.selectAssetsOfProject=AP,i.selectAttachmentsOfAsset=Fa,i.selectAttachmentsOfAssetProcedureStepFieldValues=Xd,i.selectAttachmentsOfAssetProcedureStepFields=dP,i.selectAttachmentsOfAssetProcedureType=xO,i.selectAttachmentsOfAssetProcedureTypeFieldValues=bc,i.selectAttachmentsOfAssetProcedureTypeFields=eP,i.selectAttachmentsOfAssetType=bu,i.selectAttachmentsOfAssetTypeFieldValues=hl,i.selectAttachmentsOfAssetTypeFields=TP,i.selectAttachmentsOfDocument=zP,i.selectAttachmentsOfFormRevision=LP,i.selectAttachmentsOfFormSubmission=Zm,i.selectAttachmentsOfIssue=Zy,i.selectAttachmentsOfIssueComment=HP,i.selectAttachmentsOfIssueType=YP,i.selectAttachmentsOfIssueTypeFieldValues=QA,i.selectAttachmentsOfIssueTypeFields=ZP,i.selectAttachmentsOfProject=pF,i.selectCommentsOfIssue=WP,i.selectConversation=QO,i.selectConversationMapping=Xt,i.selectConversations=XO,i.selectCurrentUser=OS,i.selectDeletedRequests=uF,i.selectDescendantsOfAssetProcedureStep=_r,i.selectDescendantsOfDocument=dh,i.selectDocumentAttachmentById=Ho,i.selectDocumentAttachmentMapping=Go,i.selectDocumentAttachmentsByIds=Wo,i.selectDocumentById=ah,i.selectDocuments=Rt,i.selectDocumentsByIds=ch,i.selectDocumentsMapping=ii,i.selectEmailDomainById=Th,i.selectEmailDomains=ai,i.selectEmailDomainsAsMapping=Sh,i.selectEmailDomainsByIds=Ih,i.selectEmailDomainsOfOrganization=qP,i.selectFieldValuesOfAssetProcedure=nP,i.selectFormById=Dm,i.selectFormIdentifierById=$h,i.selectFormIdentifierMapping=Dh,i.selectFormIdentifierValueById=Qh,i.selectFormIdentifierValueMapping=Xh,i.selectFormIdentifierValues=wt,i.selectFormIdentifierValuesByIds=xh,i.selectFormIdentifierValuesOfFormSubmission=UP,i.selectFormIdentifierValuesOfIdentifier=CP,i.selectFormIdentifiers=ri,i.selectFormIdentifiersByIds=Uh,i.selectFormIdentifiersOfForm=$P,i.selectFormMapping=qm,i.selectFormRevisionAttachmentById=hm,i.selectFormRevisionAttachments=om,i.selectFormRevisionAttachmentsByIds=mm,i.selectFormRevisionAttachmentsMapping=Et,i.selectFormRevisionById=Om,i.selectFormRevisionMapping=Ai,i.selectFormRevisions=vt,i.selectFormRevisionsByIds=Pm,i.selectFormRevisionsOfForm=Fm,i.selectFormSubmissionAttachemntsByIds=gi,i.selectFormSubmissionAttachmentById=Km,i.selectFormSubmissionAttachments=Fi,i.selectFormSubmissionAttachmentsByIds=Ym,i.selectFormSubmissionAttachmentsMapping=Pi,i.selectFormSubmissionById=cy,i.selectFormSubmissions=ay,i.selectFormSubmissionsByIds=dy,i.selectFormSubmissionsMapping=Ri,i.selectFormSubmissionsOfForm=ry,i.selectForms=Si,i.selectFormsByIds=$m,i.selectFormsOfOrganization=NP,i.selectGeoImageById=Oy,i.selectGeoImageMapping=Iy,i.selectGeoImages=Ei,i.selectGeoImagesByIds=Py,i.selectGeoImagesOfProject=GP,i.selectIsImportingProjectFile=fF,i.selectIsLoggedIn=VP,i.selectIssueAssociationById=Vy,i.selectIssueAssociationMapping=Vt,i.selectIssueAssociations=mt,i.selectIssueAssociationsByIds=zy,i.selectIssueAssociationsOfAsset=$y,i.selectIssueAssociationsOfIssue=Dy,i.selectIssueAssociationsOfIssues=qy,i.selectIssueAssociationsToIssue=By,i.selectIssueAssociationsToIssues=jy,i.selectIssueAttachmentById=Jy,i.selectIssueAttachmentMapping=Yy,i.selectIssueAttachments=ji,i.selectIssueAttachmentsByIds=Xy,i.selectIssueById=jp,i.selectIssueCommentAttachmentById=lp,i.selectIssueCommentAttachmentMapping=up,i.selectIssueCommentAttachments=Di,i.selectIssueCommentAttachmentsByIds=op,i.selectIssueCommentById=Fp,i.selectIssueCommentMapping=Ui,i.selectIssueCommentsByIds=gp,i.selectIssueMapping=Bp,i.selectIssueTypeAttachmentById=Jp,i.selectIssueTypeAttachmentMapping=Zp,i.selectIssueTypeAttachments=Gi,i.selectIssueTypeAttachmentsByIds=Xp,i.selectIssueTypeById=Cf,i.selectIssueTypeFieldValues=Bt,i.selectIssueTypeFieldValuesAttachmentById=JA,i.selectIssueTypeFieldValuesAttachments=Qi,i.selectIssueTypeFieldValuesAttachmentsByIds=XA,i.selectIssueTypeFieldValuesAttachmentsMapping=ZA,i.selectIssueTypeFieldValuesById=gA,i.selectIssueTypeFieldValuesByIds=bA,i.selectIssueTypeFieldValuesMapping=FA,i.selectIssueTypeFieldValuesOfIssue=JP,i.selectIssueTypeFields=yt,i.selectIssueTypeFieldsAttachmentById=lA,i.selectIssueTypeFieldsAttachments=Wi,i.selectIssueTypeFieldsAttachmentsByIds=oA,i.selectIssueTypeFieldsAttachmentsMapping=uA,i.selectIssueTypeFieldsById=$A,i.selectIssueTypeFieldsByIds=UA,i.selectIssueTypeFieldsMapping=DA,i.selectIssueTypeFieldsOfIssueType=XP,i.selectIssueTypeIdentifierById=hf,i.selectIssueTypeIdentifierMapping=of,i.selectIssueTypeIdentifierValueById=_f,i.selectIssueTypeIdentifierValueMapping=bf,i.selectIssueTypeIdentifierValues=jt,i.selectIssueTypeIdentifierValuesByIds=Mf,i.selectIssueTypeIdentifierValuesOfIdentifier=sF,i.selectIssueTypeIdentifierValuesOfIssue=tF,i.selectIssueTypeIdentifiers=en,i.selectIssueTypeIdentifiersByIds=mf,i.selectIssueTypeIdentifiersOfIssueType=eF,i.selectIssueTypeMapping=Uf,i.selectIssueTypeStatusById=dn,i.selectIssueTypeStatusMapping=xf,i.selectIssueTypeStatuses=cn,i.selectIssueTypeStatusesByIds=eS,i.selectIssueTypeStatusesOfIssueType=nF,i.selectIssueTypeValuesOfIssueType=xP,i.selectIssueTypes=nn,i.selectIssueTypesByIds=Lf,i.selectIssueTypesOfOrganization=iF,i.selectIssueUpdateById=rS,i.selectIssueUpdateMapping=mn,i.selectIssueUpdates=yn,i.selectIssueUpdatesByIds=uS,i.selectIssueUpdatesOfIssue=lS,i.selectIssues=zt,i.selectIssuesByIds=qp,i.selectIssuesOfIssueType=Dp,i.selectIssuesOfProject=KP,i.selectLatestAssetProcedureStepFieldsOfAssetProcedureStep=uP,i.selectLatestAssetProcedureTypeFieldsOfAssetProcedureType=sP,i.selectLatestAssetTypeFieldsOfAssetType=OP,i.selectLatestFieldsByAssetProcedureStep=lP,i.selectLatestFormRevisionOfForm=kP,i.selectLatestIssueTypeFieldsOfIssueType=QP,i.selectLatestRetryTime=lF,i.selectMembershipsByUserOfTeam=FF,i.selectOrganizationAccessById=BS,i.selectOrganizationAccessMapping=$t,i.selectOrganizationAccessUserMapping=qS,i.selectOrganizationAccessesByIds=jS,i.selectOrganizationById=ZS,i.selectOrganizationDocuments=jP,i.selectOrganizations=YS,i.selectOrganizationsByIds=JS,i.selectOrganizationsMapping=KS,i.selectProjectAccessById=pT,i.selectProjectAccessMapping=Fn,i.selectProjectAccesses=pt,i.selectProjectAccessesByIds=AT,i.selectProjectAccessesOfProject=hF,i.selectProjectAttachmentById=RT,i.selectProjectAttachmentMapping=MT,i.selectProjectAttachments=bn,i.selectProjectAttachmentsByIds=wT,i.selectProjectById=dI,i.selectProjectDocuments=BP,i.selectProjectFileById=WT,i.selectProjectFileMapping=GT,i.selectProjectFiles=HT,i.selectProjectFilesByIds=KT,i.selectProjectMapping=cI,i.selectProjects=Ut,i.selectProjectsByIds=rI,i.selectProjectsOfOrganization=TF,i.selectRehydrated=PF,i.selectStageMapping=zs,i.selectTeamById=jI,i.selectTeamMembershipById=PI,i.selectTeamMemberships=Ct,i.selectTeamMembershipsByIds=FI,i.selectTeamMembershipsMapping=OI,i.selectTeams=vn,i.selectTeamsByIds=qI,i.selectTeamsMapping=BI,i.selectTeamsOfOrganization=bF,i.selectUploadUrl=bh,i.selectUserById=Dt,i.selectUsers=qt,i.selectUsersByIds=PS,i.selectUsersMapping=Sn,i.selectUsersOfOrganization=rF,i.selectUsersOfProject=yF,i.selectUsersOfTeam=gF,i.setActiveProjectFileId=kT,i.setAsset=zr,i.setAssetAttachment=pa,i.setAssetAttachments=Aa,i.setAssetProcedure=Wc,i.setAssetProcedureStep=pr,i.setAssetProcedureStepFieldValues=ir,i.setAssetProcedureStepFieldValuesAttachment=Nd,i.setAssetProcedureStepFieldValuesAttachments=Gd,i.setAssetProcedureStepFieldValuesMany=nr,i.setAssetProcedureStepFields=vd,i.setAssetProcedureStepFieldsAttachment=fd,i.setAssetProcedureStepFieldsAttachments=Sd,i.setAssetProcedureStepFieldsMany=Vd,i.setAssetProcedureSteps=Ar,i.setAssetProcedureType=dd,i.setAssetProcedureTypeAttachment=wa,i.setAssetProcedureTypeAttachments=Ea,i.setAssetProcedureTypeFieldValues=Ec,i.setAssetProcedureTypeFieldValuesAttachment=Ac,i.setAssetProcedureTypeFieldValuesAttachments=fc,i.setAssetProcedureTypeFieldValuesMany=vc,i.setAssetProcedureTypeFields=ic,i.setAssetProcedureTypeFieldsAttachment=Na,i.setAssetProcedureTypeFieldsAttachments=Ga,i.setAssetProcedureTypeFieldsMany=nc,i.setAssetProcedureTypes=rd,i.setAssetProcedures=Kc,i.setAssetStage=iu,i.setAssetStageCompletion=Gr,i.setAssetStageCompletions=Hr,i.setAssetStages=nu,i.setAssetType=no,i.setAssetTypeAttachment=fu,i.setAssetTypeAttachments=Su,i.setAssetTypeFieldValues=Sl,i.setAssetTypeFieldValuesAttachment=nl,i.setAssetTypeFieldValuesAttachments=al,i.setAssetTypeFieldValuesMany=Tl,i.setAssetTypeFields=Hu,i.setAssetTypeFieldsAttachment=vu,i.setAssetTypeFieldsAttachments=Vu,i.setAssetTypeFieldsMany=Wu,i.setAssetTypeIdentifier=Vl,i.setAssetTypeIdentifierValue=Wl,i.setAssetTypeIdentifierValues=Kl,i.setAssetTypeIdentifiers=zl,i.setAssetTypeStatus=Oo,i.setAssetTypeStatuses=Po,i.setAssetTypes=ao,i.setAssets=Br,i.setClientSDK=nO,i.setClientStore=sO,i.setConversation=ua,i.setConversations=KO,i.setCurrentUser=aF,i.setDocument=Qo,i.setDocumentAttachment=$o,i.setDocumentAttachments=Uo,i.setDocuments=xo,i.setEmailDomain=hh,i.setEmailDomains=mh,i.setForm=wm,i.setFormIdentifier=vh,i.setFormIdentifierValue=Hh,i.setFormIdentifierValues=Wh,i.setFormIdentifiers=Vh,i.setFormRevision=fm,i.setFormRevisionAttachment=am,i.setFormRevisionAttachments=cm,i.setFormRevisions=Sm,i.setFormSubmission=xm,i.setFormSubmissionAttachment=km,i.setFormSubmissionAttachments=Nm,i.setFormSubmissions=ey,i.setForms=Em,i.setGeoImage=hy,i.setGeoImages=my,i.setIsImportingProjectFile=LT,i.setIssue=wp,i.setIssueAssociation=My,i.setIssueAssociations=_y,i.setIssueAttachment=Ny,i.setIssueAttachments=Gy,i.setIssueComment=fp,i.setIssueCommentAttachment=ip,i.setIssueCommentAttachments=np,i.setIssueComments=Sp,i.setIssueType=zf,i.setIssueTypeAttachment=Np,i.setIssueTypeAttachments=Gp,i.setIssueTypeFieldValues=fA,i.setIssueTypeFieldValuesAttachment=GA,i.setIssueTypeFieldValuesAttachments=HA,i.setIssueTypeFieldValuesMany=SA,i.setIssueTypeFields=vA,i.setIssueTypeFieldsAttachment=iA,i.setIssueTypeFieldsAttachments=nA,i.setIssueTypeFieldsMany=VA,i.setIssueTypeIdentifier=af,i.setIssueTypeIdentifierValue=Tf,i.setIssueTypeIdentifierValues=If,i.setIssueTypeIdentifiers=cf,i.setIssueTypeStatus=Kf,i.setIssueTypeStatuses=Yf,i.setIssueTypes=Bf,i.setIssueUpdate=nS,i.setIssueUpdates=aS,i.setIssues=Ep,i.setLoggedIn=Vo,i.setOrganization=CS,i.setOrganizationAccess=MS,i.setOrganizationAccesses=RS,i.setOrganizations=US,i.setProfilePicture=cF,i.setProject=QT,i.setProjectAccess=rT,i.setProjectAccesses=uT,i.setProjectAttachment=OT,i.setProjectAttachments=PT,i.setProjectFile=zT,i.setProjectFiles=BT,i.setProjects=XT,i.setRehydrated=OF,i.setTeam=RI,i.setTeamMembership=yI,i.setTeamMemberships=pI,i.setTeams=wI,i.setTokens=wP,i.setUploadUrl=gh,i.setUser=pS,i.setUsers=yS,i.shallowEqual=gO,i.slugify=CO,i.spacesToDashesLower=UO,i.teamMembershipReducer=II,i.teamMembershipSlice=wn,i.teamReducer=DI,i.teamSlice=En,i.toFileNameSafeString=$O,i.toUuidArray=q,i.toUuidIdRecord=DO,i.truncate=LO,i.updateAsset=Er,i.updateAssetAttachment=fa,i.updateAssetAttachments=Sa,i.updateAssetProcedure=Nc,i.updateAssetProcedureStep=Tr,i.updateAssetProcedureStepFieldValues=ar,i.updateAssetProcedureStepFieldValuesAttachment=Hd,i.updateAssetProcedureStepFieldValuesAttachments=Wd,i.updateAssetProcedureStepFieldValuesMany=cr,i.updateAssetProcedureStepFields=zd,i.updateAssetProcedureStepFieldsAttachment=Td,i.updateAssetProcedureStepFieldsAttachments=Id,i.updateAssetProcedureStepFieldsMany=Bd,i.updateAssetProcedureSteps=Ir,i.updateAssetProcedureType=id,i.updateAssetProcedureTypeAttachment=va,i.updateAssetProcedureTypeAttachments=Va,i.updateAssetProcedureTypeFieldValues=Vc,i.updateAssetProcedureTypeFieldValuesAttachment=Sc,i.updateAssetProcedureTypeFieldValuesAttachments=Tc,i.updateAssetProcedureTypeFieldValuesMany=zc,i.updateAssetProcedureTypeFields=ac,i.updateAssetProcedureTypeFieldsAttachment=Ha,i.updateAssetProcedureTypeFieldsAttachments=Wa,i.updateAssetProcedureTypeFieldsMany=cc,i.updateAssetProcedureTypes=nd,i.updateAssetProcedures=Gc,i.updateAssetStage=du,i.updateAssetStageCompletion=Wr,i.updateAssetStageCompletions=Kr,i.updateAssetStages=ru,i.updateAssetType=uo,i.updateAssetTypeAttachment=Tu,i.updateAssetTypeAttachments=Iu,i.updateAssetTypeFieldValues=Il,i.updateAssetTypeFieldValuesAttachment=cl,i.updateAssetTypeFieldValuesAttachments=dl,i.updateAssetTypeFieldValuesMany=Ol,i.updateAssetTypeFields=Ku,i.updateAssetTypeFieldsAttachment=zu,i.updateAssetTypeFieldsAttachments=Bu,i.updateAssetTypeFieldsMany=Yu,i.updateAssetTypeIdentifier=Bl,i.updateAssetTypeIdentifierValue=Yl,i.updateAssetTypeIdentifierValues=Zl,i.updateAssetTypeIdentifiers=jl,i.updateAssetTypeStatus=Fo,i.updateAssetTypeStatuses=go,i.updateAssetTypes=lo,i.updateAssets=vr,i.updateConversation=la,i.updateConversations=YO,i.updateDocument=eh,i.updateDocumentAttachment=Co,i.updateDocumentAttachments=Lo,i.updateDocuments=th,i.updateEmailDomain=yh,i.updateEmailDomains=ph,i.updateForm=vm,i.updateFormIdentifier=zh,i.updateFormIdentifierValue=Kh,i.updateFormIdentifierValues=Yh,i.updateFormIdentifiers=Bh,i.updateFormRevision=Tm,i.updateFormRevisionAttachment=dm,i.updateFormRevisionAttachments=rm,i.updateFormRevisions=Im,i.updateFormSubmission=sy,i.updateFormSubmissionAttachment=Gm,i.updateFormSubmissionAttachments=Hm,i.updateFormSubmissions=iy,i.updateForms=Vm,i.updateGeoImage=Ay,i.updateGeoImages=fy,i.updateIssue=vp,i.updateIssueAssociation=Ry,i.updateIssueAssociations=wy,i.updateIssueAttachment=Hy,i.updateIssueAttachments=Wy,i.updateIssueComment=Tp,i.updateIssueCommentAttachment=ap,i.updateIssueCommentAttachments=cp,i.updateIssueComments=Ip,i.updateIssueType=jf,i.updateIssueTypeAttachment=Hp,i.updateIssueTypeAttachments=Wp,i.updateIssueTypeFieldValues=TA,i.updateIssueTypeFieldValuesAttachment=WA,i.updateIssueTypeFieldValuesAttachments=KA,i.updateIssueTypeFieldValuesMany=IA,i.updateIssueTypeFields=zA,i.updateIssueTypeFieldsAttachment=aA,i.updateIssueTypeFieldsAttachments=cA,i.updateIssueTypeFieldsMany=BA,i.updateIssueTypeIdentifier=df,i.updateIssueTypeIdentifierValue=Of,i.updateIssueTypeIdentifierValues=Pf,i.updateIssueTypeIdentifiers=rf,i.updateIssueTypeStatus=Zf,i.updateIssueTypeStatuses=Jf,i.updateIssueTypes=qf,i.updateIssueUpdate=cS,i.updateIssueUpdates=dS,i.updateIssues=Vp,i.updateOrganization=GS,i.updateOrganizationAccess=wS,i.updateOrganizationAccesses=ES,i.updateOrganizations=NS,i.updateProject=sI,i.updateProjectAccess=lT,i.updateProjectAccesses=oT,i.updateProjectAttachment=FT,i.updateProjectAttachments=gT,i.updateProjectFile=DT,i.updateProjectFiles=$T,i.updateProjects=tI,i.updateTeam=EI,i.updateTeamMembership=AI,i.updateTeamMemberships=fI,i.updateTeams=vI,i.updateUser=SS,i.updateUsers=fS,i.useSelectorBuilder=FO,i.userReducer=IS,i.userSlice=pn,i.uuidObj=M,i.uuidObjSortFn=Zt,i.uuidSortFn=St,i.versioningReducer=UI,i.versioningSlice=$I,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})});