@overmap-ai/core 1.0.63-form-submission-fix.3 → 1.0.63-form-submission-drafts.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.
@@ -367,15 +367,15 @@ var __publicField = (obj, key, value) => {
367
367
  };
368
368
  const migrations = [initialVersioning, signOut, signOut, createOutboxState];
369
369
  const manifest = Object.fromEntries(migrations.map((migration2, i) => [i, wrapMigration(migration2)]));
370
- const initialState$B = {
370
+ const initialState$C = {
371
371
  accessToken: "",
372
372
  refreshToken: "",
373
373
  isLoggedIn: false
374
374
  };
375
375
  const authSlice = toolkit.createSlice({
376
376
  name: "auth",
377
- initialState: initialState$B,
378
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$B)),
377
+ initialState: initialState$C,
378
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$C)),
379
379
  reducers: {
380
380
  setTokens: (state, action) => {
381
381
  state.accessToken = action.payload.accessToken;
@@ -845,11 +845,11 @@ var __publicField = (obj, key, value) => {
845
845
  };
846
846
  }
847
847
  const categoryAdapter = createModelAdapter((category) => category.offline_id);
848
- const initialState$A = categoryAdapter.getInitialState({});
848
+ const initialState$B = categoryAdapter.getInitialState({});
849
849
  const categorySlice = toolkit.createSlice({
850
850
  name: "categories",
851
- initialState: initialState$A,
852
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$A)),
851
+ initialState: initialState$B,
852
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$B)),
853
853
  reducers: {
854
854
  initializeCategories: categoryAdapter.initialize,
855
855
  addCategory: categoryAdapter.addOne,
@@ -879,11 +879,11 @@ var __publicField = (obj, key, value) => {
879
879
  };
880
880
  const categoryReducer = categorySlice.reducer;
881
881
  const assetTypeAdapter = createModelAdapter((assetType) => assetType.offline_id);
882
- const initialState$z = assetTypeAdapter.getInitialState({});
882
+ const initialState$A = assetTypeAdapter.getInitialState({});
883
883
  const assetTypeSlice = toolkit.createSlice({
884
884
  name: "assetTypes",
885
- initialState: initialState$z,
886
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$z)),
885
+ initialState: initialState$A,
886
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$A)),
887
887
  reducers: {
888
888
  initializeAssetTypes: assetTypeAdapter.initialize,
889
889
  addAssetType: assetTypeAdapter.addOne,
@@ -928,11 +928,11 @@ var __publicField = (obj, key, value) => {
928
928
  );
929
929
  const assetTypeReducer = assetTypeSlice.reducer;
930
930
  const assetAdapter = createModelAdapter((asset) => asset.offline_id);
931
- const initialState$y = assetAdapter.getInitialState({});
931
+ const initialState$z = assetAdapter.getInitialState({});
932
932
  const assetSlice = toolkit.createSlice({
933
933
  name: "assets",
934
- initialState: initialState$y,
935
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$y)),
934
+ initialState: initialState$z,
935
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$z)),
936
936
  reducers: {
937
937
  initializeAssets: (state, action) => {
938
938
  assetAdapter.initialize(state, action);
@@ -1035,11 +1035,11 @@ var __publicField = (obj, key, value) => {
1035
1035
  };
1036
1036
  const assetReducer = assetSlice.reducer;
1037
1037
  const assetAttachmentAdapter = createModelAdapter((attachment) => attachment.offline_id);
1038
- const initialState$x = assetAttachmentAdapter.getInitialState({});
1038
+ const initialState$y = assetAttachmentAdapter.getInitialState({});
1039
1039
  const assetAttachmentSlice = toolkit.createSlice({
1040
1040
  name: "assetAttachments",
1041
- initialState: initialState$x,
1042
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$x)),
1041
+ initialState: initialState$y,
1042
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$y)),
1043
1043
  reducers: {
1044
1044
  initializeAssetAttachments: assetAttachmentAdapter.initialize,
1045
1045
  addAssetAttachment: assetAttachmentAdapter.addOne,
@@ -1097,13 +1097,13 @@ var __publicField = (obj, key, value) => {
1097
1097
  )
1098
1098
  );
1099
1099
  const assetAttachmentReducer = assetAttachmentSlice.reducer;
1100
- const initialState$w = {
1100
+ const initialState$x = {
1101
1101
  completionsByAssetId: {}
1102
1102
  };
1103
1103
  const assetStageCompletionSlice = toolkit.createSlice({
1104
1104
  name: "assetStageCompletions",
1105
- initialState: initialState$w,
1106
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$w)),
1105
+ initialState: initialState$x,
1106
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$x)),
1107
1107
  reducers: {
1108
1108
  addStageCompletion: (state, action) => {
1109
1109
  let stageToCompletionDateMapping = state.completionsByAssetId[action.payload.asset];
@@ -1155,11 +1155,11 @@ var __publicField = (obj, key, value) => {
1155
1155
  );
1156
1156
  const assetStageCompletionReducer = assetStageCompletionSlice.reducer;
1157
1157
  const assetStageAdapter = createModelAdapter((assetStage) => assetStage.offline_id);
1158
- const initialState$v = assetStageAdapter.getInitialState({});
1158
+ const initialState$w = assetStageAdapter.getInitialState({});
1159
1159
  const assetStageSlice = toolkit.createSlice({
1160
1160
  name: "assetStages",
1161
- initialState: initialState$v,
1162
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$v)),
1161
+ initialState: initialState$w,
1162
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$w)),
1163
1163
  reducers: {
1164
1164
  initializeStages: assetStageAdapter.initialize,
1165
1165
  setStage: assetStageAdapter.setOne,
@@ -1240,11 +1240,11 @@ var __publicField = (obj, key, value) => {
1240
1240
  const assetTypeAttachmentAdapter = createModelAdapter(
1241
1241
  (attachment) => attachment.offline_id
1242
1242
  );
1243
- const initialState$u = assetTypeAttachmentAdapter.getInitialState({});
1243
+ const initialState$v = assetTypeAttachmentAdapter.getInitialState({});
1244
1244
  const assetTypeAttachmentSlice = toolkit.createSlice({
1245
1245
  name: "assetTypeAttachments",
1246
- initialState: initialState$u,
1247
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$u)),
1246
+ initialState: initialState$v,
1247
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$v)),
1248
1248
  reducers: {
1249
1249
  initializeAssetTypeAttachments: assetTypeAttachmentAdapter.initialize,
1250
1250
  addAssetTypeAttachment: assetTypeAttachmentAdapter.addOne,
@@ -1303,10 +1303,10 @@ var __publicField = (obj, key, value) => {
1303
1303
  );
1304
1304
  const assetTypeAttachmentReducer = assetTypeAttachmentSlice.reducer;
1305
1305
  const workspaceAdapter = createModelAdapter((workspace) => workspace.offline_id);
1306
- const initialState$t = workspaceAdapter.getInitialState({});
1306
+ const initialState$u = workspaceAdapter.getInitialState({});
1307
1307
  const workspaceSlice = toolkit.createSlice({
1308
1308
  name: "workspace",
1309
- initialState: initialState$t,
1309
+ initialState: initialState$u,
1310
1310
  reducers: {
1311
1311
  initializeWorkspaces: workspaceAdapter.initialize,
1312
1312
  setWorkspaces: workspaceAdapter.setMany,
@@ -1338,14 +1338,14 @@ var __publicField = (obj, key, value) => {
1338
1338
  const workspaceReducer = workspaceSlice.reducer;
1339
1339
  const maxRecentIssues = 10;
1340
1340
  const issueAdapter = createModelAdapter((issue) => issue.offline_id);
1341
- const initialState$s = issueAdapter.getInitialState({
1341
+ const initialState$t = issueAdapter.getInitialState({
1342
1342
  recentIssueIds: []
1343
1343
  });
1344
1344
  const issueSlice = toolkit.createSlice({
1345
1345
  name: "issues",
1346
- initialState: initialState$s,
1346
+ initialState: initialState$t,
1347
1347
  extraReducers: (builder) => builder.addCase("RESET", (state) => {
1348
- Object.assign(state, initialState$s);
1348
+ Object.assign(state, initialState$t);
1349
1349
  }),
1350
1350
  reducers: {
1351
1351
  initializeIssues: issueAdapter.initialize,
@@ -1489,12 +1489,12 @@ var __publicField = (obj, key, value) => {
1489
1489
  );
1490
1490
  const issueReducer = issueSlice.reducer;
1491
1491
  const issueTypeAdapter = createModelAdapter((issueType) => issueType.offline_id);
1492
- const initialState$r = issueTypeAdapter.getInitialState({});
1492
+ const initialState$s = issueTypeAdapter.getInitialState({});
1493
1493
  const issueTypeSlice = toolkit.createSlice({
1494
1494
  name: "issueTypes",
1495
- initialState: initialState$r,
1495
+ initialState: initialState$s,
1496
1496
  extraReducers: (builder) => builder.addCase("RESET", (state) => {
1497
- Object.assign(state, initialState$r);
1497
+ Object.assign(state, initialState$s);
1498
1498
  }),
1499
1499
  reducers: {
1500
1500
  initializeIssueTypes: issueTypeAdapter.initialize,
@@ -1543,15 +1543,15 @@ var __publicField = (obj, key, value) => {
1543
1543
  return ((_a2 = selectIssuesOfIssueType(issueTypeId)(state)) == null ? void 0 : _a2.length) ?? 0;
1544
1544
  };
1545
1545
  const issueTypeReducer = issueTypeSlice.reducer;
1546
- const initialState$q = {
1546
+ const initialState$r = {
1547
1547
  s3Urls: {}
1548
1548
  };
1549
1549
  const msPerHour = 1e3 * 60 * 60;
1550
1550
  const msPerWeek = msPerHour * 24 * 7;
1551
1551
  const fileSlice = toolkit.createSlice({
1552
1552
  name: "file",
1553
- initialState: initialState$q,
1554
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$q)),
1553
+ initialState: initialState$r,
1554
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$r)),
1555
1555
  reducers: {
1556
1556
  setUploadUrl: (state, action) => {
1557
1557
  const { url, fields, sha1 } = action.payload;
@@ -1632,7 +1632,7 @@ var __publicField = (obj, key, value) => {
1632
1632
  LicenseStatus2[LicenseStatus2["PAST_DUE"] = 8] = "PAST_DUE";
1633
1633
  return LicenseStatus2;
1634
1634
  })(LicenseStatus || {});
1635
- const initialState$p = {
1635
+ const initialState$q = {
1636
1636
  users: {},
1637
1637
  currentUser: {
1638
1638
  id: 0,
@@ -1643,8 +1643,8 @@ var __publicField = (obj, key, value) => {
1643
1643
  };
1644
1644
  const userSlice = toolkit.createSlice({
1645
1645
  name: "users",
1646
- initialState: initialState$p,
1647
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$p)),
1646
+ initialState: initialState$q,
1647
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$q)),
1648
1648
  reducers: {
1649
1649
  setUsers: (state, action) => {
1650
1650
  const usersMapping = {};
@@ -1709,11 +1709,11 @@ var __publicField = (obj, key, value) => {
1709
1709
  const organizationAccessAdapter = createModelAdapter(
1710
1710
  (organizationAccess) => organizationAccess.offline_id
1711
1711
  );
1712
- const initialState$o = organizationAccessAdapter.getInitialState({});
1712
+ const initialState$p = organizationAccessAdapter.getInitialState({});
1713
1713
  const organizationAccessSlice = toolkit.createSlice({
1714
1714
  name: "organizationAccess",
1715
- initialState: initialState$o,
1716
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$o)),
1715
+ initialState: initialState$p,
1716
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$p)),
1717
1717
  reducers: {
1718
1718
  initializeOrganizationAccesses: organizationAccessAdapter.initialize,
1719
1719
  updateOrganizationAccess: organizationAccessAdapter.updateOne,
@@ -1750,11 +1750,11 @@ var __publicField = (obj, key, value) => {
1750
1750
  };
1751
1751
  const organizationAccessReducer = organizationAccessSlice.reducer;
1752
1752
  const licenseAdapter = createModelAdapter((license) => license.offline_id);
1753
- const initialState$n = licenseAdapter.getInitialState({});
1753
+ const initialState$o = licenseAdapter.getInitialState({});
1754
1754
  const licenseSlice = toolkit.createSlice({
1755
1755
  name: "license",
1756
- initialState: initialState$n,
1757
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$n)),
1756
+ initialState: initialState$o,
1757
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$o)),
1758
1758
  reducers: {
1759
1759
  initializeLicences: licenseAdapter.initialize,
1760
1760
  addLicenses: licenseAdapter.addMany,
@@ -1780,11 +1780,11 @@ var __publicField = (obj, key, value) => {
1780
1780
  );
1781
1781
  const licenseReducer = licenseSlice.reducer;
1782
1782
  const projectAccessAdapter = createModelAdapter((projectAccess) => projectAccess.offline_id);
1783
- const initialState$m = projectAccessAdapter.getInitialState({});
1783
+ const initialState$n = projectAccessAdapter.getInitialState({});
1784
1784
  const projectAccessSlice = toolkit.createSlice({
1785
1785
  name: "projectAccess",
1786
- initialState: initialState$m,
1787
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$m)),
1786
+ initialState: initialState$n,
1787
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$n)),
1788
1788
  reducers: {
1789
1789
  initializeProjectAccesses: projectAccessAdapter.initialize,
1790
1790
  updateProjectAccess: projectAccessAdapter.updateOne,
@@ -1830,14 +1830,14 @@ var __publicField = (obj, key, value) => {
1830
1830
  return projectAccesses;
1831
1831
  };
1832
1832
  const projectAccessReducer = projectAccessSlice.reducer;
1833
- const initialState$l = {
1833
+ const initialState$m = {
1834
1834
  projects: {},
1835
1835
  activeProjectId: null
1836
1836
  };
1837
1837
  const projectSlice = toolkit.createSlice({
1838
1838
  name: "projects",
1839
- initialState: initialState$l,
1840
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$l)),
1839
+ initialState: initialState$m,
1840
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$m)),
1841
1841
  reducers: {
1842
1842
  setProjects: (state, action) => {
1843
1843
  const projectsMap = {};
@@ -1951,13 +1951,13 @@ var __publicField = (obj, key, value) => {
1951
1951
  });
1952
1952
  }
1953
1953
  );
1954
- const initialState$k = {
1954
+ const initialState$l = {
1955
1955
  organizations: {}
1956
1956
  };
1957
1957
  const organizationSlice = toolkit.createSlice({
1958
1958
  name: "organizations",
1959
- initialState: initialState$k,
1960
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$k)),
1959
+ initialState: initialState$l,
1960
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$l)),
1961
1961
  reducers: {
1962
1962
  setOrganizations: (state, action) => {
1963
1963
  for (const org of action.payload) {
@@ -2040,14 +2040,14 @@ var __publicField = (obj, key, value) => {
2040
2040
  }
2041
2041
  };
2042
2042
  };
2043
- const initialState$j = {
2043
+ const initialState$k = {
2044
2044
  deletedRequests: [],
2045
2045
  latestRetryTime: 0
2046
2046
  };
2047
2047
  const outboxSlice = toolkit.createSlice({
2048
2048
  name: "outbox",
2049
- initialState: initialState$j,
2050
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$j)),
2049
+ initialState: initialState$k,
2050
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$k)),
2051
2051
  reducers: {
2052
2052
  // enqueueActions is a reducer that does nothing but enqueue API request to the Redux Offline outbox
2053
2053
  // Whenever an issue is being created, a reducer addIssue() is responsible for adding it to the offline store
@@ -2079,15 +2079,15 @@ var __publicField = (obj, key, value) => {
2079
2079
  const selectLatestRetryTime = (state) => state.outboxReducer.latestRetryTime;
2080
2080
  const { enqueueRequest, markForDeletion, markAsDeleted, _setLatestRetryTime } = outboxSlice.actions;
2081
2081
  const outboxReducer = outboxSlice.reducer;
2082
- const initialState$i = {
2082
+ const initialState$j = {
2083
2083
  projectFiles: {},
2084
2084
  activeProjectFileId: null,
2085
2085
  isImportingProjectFile: false
2086
2086
  };
2087
2087
  const projectFileSlice = toolkit.createSlice({
2088
2088
  name: "projectFiles",
2089
- initialState: initialState$i,
2090
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$i)),
2089
+ initialState: initialState$j,
2090
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$j)),
2091
2091
  reducers: {
2092
2092
  addOrReplaceProjectFiles: (state, action) => {
2093
2093
  for (let fileObj of action.payload) {
@@ -2172,11 +2172,11 @@ var __publicField = (obj, key, value) => {
2172
2172
  };
2173
2173
  const projectFileReducer = projectFileSlice.reducer;
2174
2174
  const projectAttachmentAdapter = createModelAdapter((attachment) => attachment.offline_id);
2175
- const initialState$h = projectAttachmentAdapter.getInitialState({});
2175
+ const initialState$i = projectAttachmentAdapter.getInitialState({});
2176
2176
  const projectAttachmentSlice = toolkit.createSlice({
2177
2177
  name: "projectAttachments",
2178
- initialState: initialState$h,
2179
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$h)),
2178
+ initialState: initialState$i,
2179
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$i)),
2180
2180
  reducers: {
2181
2181
  initializeProjectAttachments: projectAttachmentAdapter.initialize,
2182
2182
  addProjectAttachment: projectAttachmentAdapter.addOne,
@@ -2234,12 +2234,12 @@ var __publicField = (obj, key, value) => {
2234
2234
  )
2235
2235
  );
2236
2236
  const projectAttachmentReducer = projectAttachmentSlice.reducer;
2237
- const initialState$g = {
2237
+ const initialState$h = {
2238
2238
  isRehydrated: false
2239
2239
  };
2240
2240
  const rehydratedSlice = toolkit.createSlice({
2241
2241
  name: "rehydrated",
2242
- initialState: initialState$g,
2242
+ initialState: initialState$h,
2243
2243
  // The `reducers` field lets us define reducers and generate associated actions
2244
2244
  reducers: {
2245
2245
  setRehydrated: (state, action) => {
@@ -2250,13 +2250,13 @@ var __publicField = (obj, key, value) => {
2250
2250
  const { setRehydrated } = rehydratedSlice.actions;
2251
2251
  const selectRehydrated = (state) => state.rehydratedReducer.isRehydrated;
2252
2252
  const rehydratedReducer = rehydratedSlice.reducer;
2253
- const initialState$f = {
2253
+ const initialState$g = {
2254
2254
  isFetchingInitialData: false
2255
2255
  };
2256
2256
  const settingSlice = toolkit.createSlice({
2257
2257
  name: "settings",
2258
- initialState: initialState$f,
2259
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$f)),
2258
+ initialState: initialState$g,
2259
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$g)),
2260
2260
  reducers: {
2261
2261
  setIsFetchingInitialData: (state, action) => {
2262
2262
  state.isFetchingInitialData = action.payload;
@@ -2280,11 +2280,11 @@ var __publicField = (obj, key, value) => {
2280
2280
  }
2281
2281
  };
2282
2282
  const formRevisionAdapter = createModelAdapter((revision) => revision.offline_id);
2283
- const initialState$e = formRevisionAdapter.getInitialState({});
2283
+ const initialState$f = formRevisionAdapter.getInitialState({});
2284
2284
  const formRevisionsSlice = toolkit.createSlice({
2285
2285
  name: "formRevisions",
2286
- initialState: initialState$e,
2287
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$e)),
2286
+ initialState: initialState$f,
2287
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$f)),
2288
2288
  reducers: {
2289
2289
  initializeFormRevisions: formRevisionAdapter.initialize,
2290
2290
  setFormRevision: formRevisionAdapter.setOne,
@@ -2384,11 +2384,11 @@ var __publicField = (obj, key, value) => {
2384
2384
  });
2385
2385
  const formRevisionReducer = formRevisionsSlice.reducer;
2386
2386
  const formAdapter = createModelAdapter((form) => form.offline_id);
2387
- const initialState$d = formAdapter.getInitialState({});
2387
+ const initialState$e = formAdapter.getInitialState({});
2388
2388
  const formSlice = toolkit.createSlice({
2389
2389
  name: "forms",
2390
- initialState: initialState$d,
2391
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$d)),
2390
+ initialState: initialState$e,
2391
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$e)),
2392
2392
  reducers: {
2393
2393
  initializeForms: formAdapter.initialize,
2394
2394
  setForm: formAdapter.setOne,
@@ -2468,11 +2468,11 @@ var __publicField = (obj, key, value) => {
2468
2468
  });
2469
2469
  const formReducer = formSlice.reducer;
2470
2470
  const submissionAdapter = createModelAdapter((submission) => submission.offline_id);
2471
- const initialState$c = submissionAdapter.getInitialState({});
2471
+ const initialState$d = submissionAdapter.getInitialState({});
2472
2472
  const formSubmissionSlice = toolkit.createSlice({
2473
2473
  name: "formSubmissions",
2474
- initialState: initialState$c,
2475
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$c)),
2474
+ initialState: initialState$d,
2475
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$d)),
2476
2476
  reducers: {
2477
2477
  initializeFormSubmissions: submissionAdapter.initialize,
2478
2478
  setFormSubmission: submissionAdapter.setOne,
@@ -2582,8 +2582,10 @@ var __publicField = (obj, key, value) => {
2582
2582
  ],
2583
2583
  (issues, forms, formRevisions, submissions, issueId) => {
2584
2584
  const issue = issues[issueId];
2585
- if (!issue || !issue.issue_type) {
2585
+ if (!issue)
2586
2586
  return [];
2587
+ if (!issue.issue_type) {
2588
+ return Object.values(submissions).filter((submission) => submission.issue === issueId);
2587
2589
  }
2588
2590
  const issueTypeForms = new Set(
2589
2591
  Object.keys(forms).filter((formId) => forms[formId].issue_type === issue.issue_type)
@@ -2638,8 +2640,10 @@ var __publicField = (obj, key, value) => {
2638
2640
  ],
2639
2641
  (assets, forms, formRevisions, submissions, assetId) => {
2640
2642
  const asset = assets[assetId];
2641
- if (!asset || !asset.asset_type) {
2643
+ if (!asset)
2642
2644
  return [];
2645
+ if (!asset.asset_type) {
2646
+ return Object.values(submissions).filter((submission) => submission.asset === assetId);
2643
2647
  }
2644
2648
  const issueTypeForms = new Set(
2645
2649
  Object.keys(forms).filter((formId) => forms[formId].asset_type === asset.asset_type)
@@ -2676,11 +2680,11 @@ var __publicField = (obj, key, value) => {
2676
2680
  const formSubmissionAttachmentAdapter = createModelAdapter(
2677
2681
  (attachment) => attachment.offline_id
2678
2682
  );
2679
- const initialState$b = formSubmissionAttachmentAdapter.getInitialState({});
2683
+ const initialState$c = formSubmissionAttachmentAdapter.getInitialState({});
2680
2684
  const formSubmissionAttachmentSlice = toolkit.createSlice({
2681
2685
  name: "formSubmissionAttachments",
2682
- initialState: initialState$b,
2683
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$b)),
2686
+ initialState: initialState$c,
2687
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$c)),
2684
2688
  reducers: {
2685
2689
  initializeFormSubmissionAttachments: formSubmissionAttachmentAdapter.initialize,
2686
2690
  addFormSubmissionAttachment: formSubmissionAttachmentAdapter.addOne,
@@ -2707,6 +2711,15 @@ var __publicField = (obj, key, value) => {
2707
2711
  const selectFormSubmissionAttachmentsMapping = (state) => {
2708
2712
  return state.formSubmissionAttachmentReducer.instances;
2709
2713
  };
2714
+ const selectFormSubmissionAttachemntsByIds = restructureCreateSelectorWithArgs(
2715
+ toolkit.createSelector(
2716
+ [selectFormSubmissionAttachmentsMapping, (_, attachmentIds) => attachmentIds],
2717
+ (mapping, attachmentIds) => {
2718
+ const attachmentIdsSet = new Set(attachmentIds);
2719
+ return Object.values(mapping).filter((attachment) => attachmentIdsSet.has(attachment.offline_id));
2720
+ }
2721
+ )
2722
+ );
2710
2723
  const selectAttachmentsOfFormSubmission = restructureCreateSelectorWithArgs(
2711
2724
  toolkit.createSelector(
2712
2725
  [selectFormSubmissionAttachmentsMapping, (_state, submissionId) => submissionId],
@@ -2719,11 +2732,11 @@ var __publicField = (obj, key, value) => {
2719
2732
  const formRevisionAttachmentAdapter = createModelAdapter(
2720
2733
  (attachment) => attachment.offline_id
2721
2734
  );
2722
- const initialState$a = formRevisionAttachmentAdapter.getInitialState({});
2735
+ const initialState$b = formRevisionAttachmentAdapter.getInitialState({});
2723
2736
  const formRevisionAttachmentSlice = toolkit.createSlice({
2724
2737
  name: "formRevisionAttachments",
2725
- initialState: initialState$a,
2726
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$a)),
2738
+ initialState: initialState$b,
2739
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$b)),
2727
2740
  reducers: {
2728
2741
  initializeFormRevisionAttachments: formRevisionAttachmentAdapter.initialize,
2729
2742
  addFormRevisionAttachment: formRevisionAttachmentAdapter.addOne,
@@ -2760,10 +2773,10 @@ var __publicField = (obj, key, value) => {
2760
2773
  );
2761
2774
  const formRevisionAttachmentReducer = formRevisionAttachmentSlice.reducer;
2762
2775
  const emailDomainAdapter = createModelAdapter((emailDomain) => emailDomain.offline_id);
2763
- const initialState$9 = emailDomainAdapter.getInitialState({});
2776
+ const initialState$a = emailDomainAdapter.getInitialState({});
2764
2777
  const emailDomainsSlice = toolkit.createSlice({
2765
2778
  name: "emailDomains",
2766
- initialState: initialState$9,
2779
+ initialState: initialState$a,
2767
2780
  reducers: {
2768
2781
  initializeEmailDomains: emailDomainAdapter.initialize,
2769
2782
  addEmailDomain: emailDomainAdapter.addOne,
@@ -2782,14 +2795,14 @@ var __publicField = (obj, key, value) => {
2782
2795
  )
2783
2796
  );
2784
2797
  const emailDomainsReducer = emailDomainsSlice.reducer;
2785
- const initialState$8 = {
2798
+ const initialState$9 = {
2786
2799
  documents: {}
2787
2800
  };
2788
2801
  const documentSlice = toolkit.createSlice({
2789
2802
  name: "documents",
2790
- initialState: initialState$8,
2803
+ initialState: initialState$9,
2791
2804
  extraReducers: (builder) => builder.addCase("RESET", (state) => {
2792
- Object.assign(state, initialState$8);
2805
+ Object.assign(state, initialState$9);
2793
2806
  }),
2794
2807
  reducers: {
2795
2808
  setDocuments: (state, action) => {
@@ -2964,11 +2977,11 @@ var __publicField = (obj, key, value) => {
2964
2977
  );
2965
2978
  const documentsReducer = documentSlice.reducer;
2966
2979
  const documentAttachmentAdapter = createModelAdapter((attachment) => attachment.offline_id);
2967
- const initialState$7 = documentAttachmentAdapter.getInitialState({});
2980
+ const initialState$8 = documentAttachmentAdapter.getInitialState({});
2968
2981
  const documentAttachmentSlice = toolkit.createSlice({
2969
2982
  name: "documentAttachments",
2970
- initialState: initialState$7,
2971
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$7)),
2983
+ initialState: initialState$8,
2984
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$8)),
2972
2985
  reducers: {
2973
2986
  initializeDocumentAttachments: documentAttachmentAdapter.initialize,
2974
2987
  addDocumentAttachment: documentAttachmentAdapter.addOne,
@@ -3027,11 +3040,11 @@ var __publicField = (obj, key, value) => {
3027
3040
  );
3028
3041
  const documentAttachmentReducer = documentAttachmentSlice.reducer;
3029
3042
  const teamAdapter = createModelAdapter((team) => team.offline_id);
3030
- const initialState$6 = teamAdapter.getInitialState({});
3043
+ const initialState$7 = teamAdapter.getInitialState({});
3031
3044
  const teamSlice = toolkit.createSlice({
3032
3045
  name: "teams",
3033
- initialState: initialState$6,
3034
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$6)),
3046
+ initialState: initialState$7,
3047
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$7)),
3035
3048
  reducers: {
3036
3049
  setTeam: teamAdapter.setOne,
3037
3050
  initializeTeams: teamAdapter.initialize,
@@ -3065,11 +3078,11 @@ var __publicField = (obj, key, value) => {
3065
3078
  const agentUserConversationAdapter = createModelAdapter(
3066
3079
  (conversation) => conversation.offline_id
3067
3080
  );
3068
- const initialState$5 = agentUserConversationAdapter.getInitialState({});
3081
+ const initialState$6 = agentUserConversationAdapter.getInitialState({});
3069
3082
  const agentsSlice = toolkit.createSlice({
3070
3083
  name: "agents",
3071
- initialState: initialState$5,
3072
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$5)),
3084
+ initialState: initialState$6,
3085
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$6)),
3073
3086
  reducers: {
3074
3087
  initializeConversations: agentUserConversationAdapter.initialize,
3075
3088
  addConversation: agentUserConversationAdapter.addOne,
@@ -3091,11 +3104,11 @@ var __publicField = (obj, key, value) => {
3091
3104
  );
3092
3105
  const agentsReducer = agentsSlice.reducer;
3093
3106
  const issueCommentAdapter = createModelAdapter((comment) => comment.offline_id);
3094
- const initialState$4 = issueCommentAdapter.getInitialState({});
3107
+ const initialState$5 = issueCommentAdapter.getInitialState({});
3095
3108
  const issueCommentSlice = toolkit.createSlice({
3096
3109
  name: "issueComments",
3097
- initialState: initialState$4,
3098
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$4)),
3110
+ initialState: initialState$5,
3111
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$5)),
3099
3112
  reducers: {
3100
3113
  addIssueComment: issueCommentAdapter.addOne,
3101
3114
  addIssueComments: issueCommentAdapter.addMany,
@@ -3124,11 +3137,11 @@ var __publicField = (obj, key, value) => {
3124
3137
  );
3125
3138
  const issueCommentReducer = issueCommentSlice.reducer;
3126
3139
  const issueUpdateAdapter = createModelAdapter((issueUpdate) => issueUpdate.offline_id);
3127
- const initialState$3 = issueUpdateAdapter.getInitialState({});
3140
+ const initialState$4 = issueUpdateAdapter.getInitialState({});
3128
3141
  const issueUpdateSlice = toolkit.createSlice({
3129
3142
  name: "issueUpdates",
3130
- initialState: initialState$3,
3131
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$3)),
3143
+ initialState: initialState$4,
3144
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$4)),
3132
3145
  reducers: {
3133
3146
  initializeIssueUpdates: issueUpdateAdapter.setMany,
3134
3147
  setIssueUpdate: issueUpdateAdapter.setOne,
@@ -3157,11 +3170,11 @@ var __publicField = (obj, key, value) => {
3157
3170
  );
3158
3171
  const issueUpdateReducer = issueUpdateSlice.reducer;
3159
3172
  const issueAttachmentAdapter = createModelAdapter((attachment) => attachment.offline_id);
3160
- const initialState$2 = issueAttachmentAdapter.getInitialState({});
3173
+ const initialState$3 = issueAttachmentAdapter.getInitialState({});
3161
3174
  const issueAttachmentSlice = toolkit.createSlice({
3162
3175
  name: "issueAttachments",
3163
- initialState: initialState$2,
3164
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$2)),
3176
+ initialState: initialState$3,
3177
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$3)),
3165
3178
  reducers: {
3166
3179
  initializeIssueAttachments: issueAttachmentAdapter.initialize,
3167
3180
  addIssueAttachment: issueAttachmentAdapter.addOne,
@@ -3219,23 +3232,23 @@ var __publicField = (obj, key, value) => {
3219
3232
  )
3220
3233
  );
3221
3234
  const issueAttachmentReducer = issueAttachmentSlice.reducer;
3222
- const initialState$1 = {
3235
+ const initialState$2 = {
3223
3236
  version: 0
3224
3237
  };
3225
3238
  const versioningSlice = toolkit.createSlice({
3226
3239
  name: "versioning",
3227
- initialState: initialState$1,
3240
+ initialState: initialState$2,
3228
3241
  reducers: {}
3229
3242
  });
3230
3243
  const versioningReducer = versioningSlice.reducer;
3231
3244
  const geoImageAdapter = createModelAdapter((model) => model.offline_id);
3232
- const initialState = geoImageAdapter.getInitialState({});
3245
+ const initialState$1 = geoImageAdapter.getInitialState({});
3233
3246
  const geoImageSlice = toolkit.createSlice({
3234
3247
  name: "geoImages",
3235
- initialState,
3248
+ initialState: initialState$1,
3236
3249
  extraReducers: (builder) => {
3237
3250
  builder.addCase("RESET", (state) => {
3238
- Object.assign(state, initialState);
3251
+ Object.assign(state, initialState$1);
3239
3252
  });
3240
3253
  },
3241
3254
  reducers: {
@@ -3272,6 +3285,64 @@ var __publicField = (obj, key, value) => {
3272
3285
  })
3273
3286
  );
3274
3287
  const geoImageReducer = geoImageSlice.reducer;
3288
+ const issueAssociationAdapter = createModelAdapter((assoc) => assoc.offline_id);
3289
+ const initialState = issueAssociationAdapter.getInitialState({});
3290
+ const issueAssociationSlice = toolkit.createSlice({
3291
+ name: "issueAssociations",
3292
+ initialState,
3293
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState)),
3294
+ reducers: {
3295
+ initializeIssueAssociations: issueAssociationAdapter.initialize,
3296
+ addIssueAssociation: issueAssociationAdapter.addOne,
3297
+ addIssueAssociations: issueAssociationAdapter.addMany,
3298
+ setIssueAssociation: issueAssociationAdapter.setOne,
3299
+ setIssueAssociations: issueAssociationAdapter.setMany,
3300
+ updateIssueAssociation: issueAssociationAdapter.updateOne,
3301
+ updateIssueAssociations: issueAssociationAdapter.updateMany,
3302
+ deleteIssueAssociation: issueAssociationAdapter.deleteOne,
3303
+ deleteIssueAssociations: issueAssociationAdapter.deleteMany
3304
+ }
3305
+ });
3306
+ const {
3307
+ initializeIssueAssociations,
3308
+ setIssueAssociations,
3309
+ setIssueAssociation,
3310
+ updateIssueAssociation,
3311
+ updateIssueAssociations,
3312
+ addIssueAssociation,
3313
+ addIssueAssociations,
3314
+ deleteIssueAssociation,
3315
+ deleteIssueAssociations
3316
+ } = issueAssociationSlice.actions;
3317
+ const selectIssueAssociationMapping = (state) => state.issueAssociationReducer.instances;
3318
+ const selectIssueAssociationById = (id) => (state) => {
3319
+ return state.issueAssociationReducer.instances[id];
3320
+ };
3321
+ const selectIssueAssociationsToIssue = restructureCreateSelectorWithArgs(
3322
+ toolkit.createSelector(
3323
+ [selectIssueAssociationMapping, (_state, issueId) => issueId],
3324
+ (associationMapping, issueId) => {
3325
+ return Object.values(associationMapping).filter((assoc) => assoc.associated_issue === issueId);
3326
+ }
3327
+ )
3328
+ );
3329
+ const selectIssueAssociationsOfIssue = restructureCreateSelectorWithArgs(
3330
+ toolkit.createSelector(
3331
+ [selectIssueAssociationMapping, (_state, issueId) => issueId],
3332
+ (associationMapping, issueId) => {
3333
+ return Object.values(associationMapping).filter((assoc) => assoc.issue === issueId);
3334
+ }
3335
+ )
3336
+ );
3337
+ const selectIssueAssociationsOfAsset = restructureCreateSelectorWithArgs(
3338
+ toolkit.createSelector(
3339
+ [selectIssueAssociationMapping, (_state, assetId) => assetId],
3340
+ (associationMapping, assetId) => {
3341
+ return Object.values(associationMapping).filter((assoc) => assoc.asset === assetId);
3342
+ }
3343
+ )
3344
+ );
3345
+ const issueAssociationReducer = issueAssociationSlice.reducer;
3275
3346
  const fullAssetMarkerSize = 45;
3276
3347
  const DEFAULT_ISSUE_STATUS = IssueStatus.BACKLOG;
3277
3348
  const DEFAULT_ISSUE_PRIORITY = IssuePriority.MEDIUM;
@@ -3344,7 +3415,8 @@ var __publicField = (obj, key, value) => {
3344
3415
  agentsReducer,
3345
3416
  issueCommentReducer,
3346
3417
  issueUpdateReducer,
3347
- geoImageReducer
3418
+ geoImageReducer,
3419
+ issueAssociationReducer
3348
3420
  };
3349
3421
  const overmapReducer = toolkit.combineReducers(overmapReducers);
3350
3422
  const resetStore = "RESET";
@@ -4135,11 +4207,13 @@ var __publicField = (obj, key, value) => {
4135
4207
  }
4136
4208
  async remove(assetId) {
4137
4209
  const { store } = this.client;
4138
- const assetToBeDeleted = selectAsset(assetId)(store.getState());
4210
+ const state = store.getState();
4211
+ const assetToBeDeleted = selectAsset(assetId)(state);
4139
4212
  if (!assetToBeDeleted)
4140
4213
  throw new Error(`No asset with id ${assetId} found in the store`);
4141
- const attachmentsOfAssets = selectAttachmentsOfAsset(assetId)(store.getState());
4142
- const formSubmissionsOfAssets = selectFormSubmissionsOfAsset(assetId)(store.getState());
4214
+ const attachmentsOfAssets = selectAttachmentsOfAsset(assetId)(state);
4215
+ const formSubmissionsOfAssets = selectFormSubmissionsOfAsset(assetId)(state);
4216
+ const issueAssociations = selectIssueAssociationsOfAsset(assetId)(state);
4143
4217
  this.dispatch(deleteAsset(assetId));
4144
4218
  if (attachmentsOfAssets.length > 0) {
4145
4219
  const attachmentsOfAssetIds = attachmentsOfAssets.map(({ offline_id }) => offline_id);
@@ -4149,6 +4223,10 @@ var __publicField = (obj, key, value) => {
4149
4223
  const formSubmissionsOfAssetIds = formSubmissionsOfAssets.map(({ offline_id }) => offline_id);
4150
4224
  this.dispatch(deleteFormSubmissions(formSubmissionsOfAssetIds));
4151
4225
  }
4226
+ if (issueAssociations.length > 0) {
4227
+ const issueAssociationsIds = issueAssociations.map(({ offline_id }) => offline_id);
4228
+ this.dispatch(deleteIssueAssociations(issueAssociationsIds));
4229
+ }
4152
4230
  return this.enqueueRequest({
4153
4231
  description: "Delete asset",
4154
4232
  method: HttpMethod.DELETE,
@@ -4159,6 +4237,7 @@ var __publicField = (obj, key, value) => {
4159
4237
  this.dispatch(addAsset(assetToBeDeleted));
4160
4238
  this.dispatch(addAssetAttachments(attachmentsOfAssets));
4161
4239
  this.dispatch(addFormSubmissions(formSubmissionsOfAssets));
4240
+ this.dispatch(addIssueAssociations(issueAssociations));
4162
4241
  throw err;
4163
4242
  });
4164
4243
  }
@@ -4606,7 +4685,7 @@ var __publicField = (obj, key, value) => {
4606
4685
  }
4607
4686
  // Note that currently the fetching of attachments for all models dependds on the active projectId. This may change in the future. And
4608
4687
  // so for some attachment model services, this method will have to be overridden.
4609
- async refreshStore(projectId) {
4688
+ async refreshStore(projectId, _organizationId) {
4610
4689
  const meta = AttachmentModelMeta[this.attachmentModel];
4611
4690
  const result = await this.enqueueRequest({
4612
4691
  description: `Get ${meta.name} attachments`,
@@ -5034,6 +5113,12 @@ var __publicField = (obj, key, value) => {
5034
5113
  const attachmentsOfIssue = selectAttachmentsOfIssue(id)(state);
5035
5114
  const updatesOfIssue = selectIssueUpdatesOfIssue(id)(state);
5036
5115
  const formSubmissionsOfIssue = selectFormSubmissionsOfIssue(id)(state);
5116
+ const issueAssociationsRecord = {};
5117
+ for (const issueAssociation of selectIssueAssociationsToIssue(id)(state))
5118
+ issueAssociationsRecord[issueAssociation.offline_id] = issueAssociation;
5119
+ for (const issueAssociation of selectIssueAssociationsOfIssue(id)(state))
5120
+ issueAssociationsRecord[issueAssociation.offline_id] = issueAssociation;
5121
+ const issueAssociations = Object.values(issueAssociationsRecord);
5037
5122
  this.dispatch(deleteIssue(id));
5038
5123
  this.dispatch(addActiveProjectIssuesCount(-1));
5039
5124
  if (attachmentsOfIssue.length > 0)
@@ -5042,6 +5127,8 @@ var __publicField = (obj, key, value) => {
5042
5127
  this.dispatch(deleteIssueUpdates(updatesOfIssue.map(({ offline_id }) => offline_id)));
5043
5128
  if (formSubmissionsOfIssue.length > 0)
5044
5129
  this.dispatch(deleteFormSubmissions(formSubmissionsOfIssue.map(({ offline_id }) => offline_id)));
5130
+ if (issueAssociations.length > 0)
5131
+ this.dispatch(deleteIssueAssociations(issueAssociations.map(({ offline_id }) => offline_id)));
5045
5132
  try {
5046
5133
  return await this.enqueueRequest({
5047
5134
  description: "Delete issue",
@@ -5056,6 +5143,7 @@ var __publicField = (obj, key, value) => {
5056
5143
  this.dispatch(addIssueUpdates(updatesOfIssue));
5057
5144
  this.dispatch(addActiveProjectIssuesCount(1));
5058
5145
  this.dispatch(addFormSubmissions(formSubmissionsOfIssue));
5146
+ this.dispatch(addIssueAssociations(issueAssociations));
5059
5147
  throw e;
5060
5148
  }
5061
5149
  }
@@ -5099,7 +5187,7 @@ var __publicField = (obj, key, value) => {
5099
5187
  offline_id: offlineIssueType.offline_id,
5100
5188
  submitted_at: offlineIssueType.submitted_at,
5101
5189
  icon: offlineIssueType.icon,
5102
- icon_color: offlineIssueType.icon_color,
5190
+ icon_color: offlineIssueType.color,
5103
5191
  name: offlineIssueType.name,
5104
5192
  description: offlineIssueType.description
5105
5193
  },
@@ -5910,6 +5998,25 @@ var __publicField = (obj, key, value) => {
5910
5998
  });
5911
5999
  return [offlineFormSubmissionAttachments, promise.then(({ attachments }) => attachments)];
5912
6000
  }
6001
+ async bulkDeleteSubmissionAttachments(submissionId, attachmentsIds) {
6002
+ const { store } = this.client;
6003
+ const state = store.getState();
6004
+ const formSubmissionAttachments = selectFormSubmissionAttachemntsByIds(attachmentsIds)(state);
6005
+ this.dispatch(deleteFormSubmissionAttachments(attachmentsIds));
6006
+ try {
6007
+ await this.enqueueRequest({
6008
+ description: "Delete form submission attachments",
6009
+ method: HttpMethod.DELETE,
6010
+ url: `/forms/submissions/${submissionId}/attachments/bulk/`,
6011
+ payload: { attachments: attachmentsIds },
6012
+ blockers: [submissionId, ...attachmentsIds],
6013
+ blocks: []
6014
+ });
6015
+ } catch (e) {
6016
+ this.dispatch(addFormSubmissionAttachments(formSubmissionAttachments));
6017
+ throw e;
6018
+ }
6019
+ }
5913
6020
  // Outer promise is for hashing and caching files for submission attachments
5914
6021
  async add(payload) {
5915
6022
  const { store } = this.client;
@@ -6049,10 +6156,64 @@ var __publicField = (obj, key, value) => {
6049
6156
  });
6050
6157
  return batchPromises;
6051
6158
  }
6159
+ async update(payload) {
6160
+ const { store } = this.client;
6161
+ const state = store.getState();
6162
+ const submissionToBeUpdated = selectFormSubmission(payload.offline_id)(state);
6163
+ if (!submissionToBeUpdated) {
6164
+ throw new Error(`Expected submission with offline_id ${payload.offline_id} to exist`);
6165
+ }
6166
+ const { values, files } = separateFilesFromValues(payload.values ?? {});
6167
+ const updatedSubmission = offline({
6168
+ ...submissionToBeUpdated,
6169
+ ...payload,
6170
+ // values could also have a partial update
6171
+ values: {
6172
+ ...submissionToBeUpdated.values,
6173
+ ...values
6174
+ }
6175
+ });
6176
+ this.dispatch(updateFormSubmission(updatedSubmission));
6177
+ const promise = this.enqueueRequest({
6178
+ description: "Delete user form submissions",
6179
+ method: HttpMethod.PATCH,
6180
+ url: `/forms/submissions/${updatedSubmission.offline_id}/`,
6181
+ payload: updatedSubmission,
6182
+ blockers: [updatedSubmission.offline_id],
6183
+ blocks: [updatedSubmission.offline_id]
6184
+ });
6185
+ const formSubmissionAttachments = selectAttachmentsOfFormSubmission(payload.offline_id)(state);
6186
+ const formSubmissionAttachmentIdsToBeDeleted = [];
6187
+ for (const attachment of formSubmissionAttachments) {
6188
+ if (attachment.field_identifier in files) {
6189
+ formSubmissionAttachmentIdsToBeDeleted.push(attachment.offline_id);
6190
+ }
6191
+ }
6192
+ const [offlineFormSubmissionAttachments, attachmentsPromise] = await this.bulkAddSubmissionAttachments(
6193
+ payload.offline_id,
6194
+ files
6195
+ );
6196
+ const deleteAttachmentsPromise = this.bulkDeleteSubmissionAttachments(
6197
+ payload.offline_id,
6198
+ formSubmissionAttachmentIdsToBeDeleted
6199
+ );
6200
+ promise.then((result) => {
6201
+ this.dispatch(setFormSubmission(result));
6202
+ }).catch(() => {
6203
+ this.dispatch(setFormSubmission(submissionToBeUpdated));
6204
+ });
6205
+ return [
6206
+ updatedSubmission,
6207
+ offlineFormSubmissionAttachments,
6208
+ promise,
6209
+ attachmentsPromise,
6210
+ deleteAttachmentsPromise
6211
+ ];
6212
+ }
6052
6213
  async delete(submissionId) {
6053
6214
  const { store } = this.client;
6054
6215
  const state = store.getState();
6055
- const submissionToBeDeleted = selectFormSubmission(submissionId)(store.getState());
6216
+ const submissionToBeDeleted = selectFormSubmission(submissionId)(state);
6056
6217
  if (!submissionToBeDeleted) {
6057
6218
  throw new Error(`Expected submission with offline_id ${submissionId} to exist`);
6058
6219
  }
@@ -6637,27 +6798,20 @@ var __publicField = (obj, key, value) => {
6637
6798
  }
6638
6799
  }
6639
6800
  class DocumentService extends BaseApiService {
6640
- // TODO: Support adding for project or organization
6641
- add(document2) {
6801
+ add(payload) {
6642
6802
  const { store } = this.client;
6643
6803
  const currentUserId = store.getState().userReducer.currentUser.id;
6644
- const activeProjectId = store.getState().projectReducer.activeProjectId;
6645
- if (!activeProjectId) {
6646
- throw new Error("No active project ID while creating document.");
6647
- }
6648
- const offlineDocument = offline(document2);
6649
- const submittedDocument = {
6650
- ...offlineDocument,
6804
+ const submittedAt = (/* @__PURE__ */ new Date()).toISOString();
6805
+ const offlineDocument = offline({
6806
+ ...payload,
6651
6807
  created_by: currentUserId,
6652
- project: activeProjectId,
6653
- organization: null,
6654
- children_documents: []
6655
- };
6656
- this.dispatch(addDocuments([submittedDocument]));
6808
+ submitted_at: submittedAt
6809
+ });
6810
+ this.dispatch(addDocuments([offlineDocument]));
6657
6811
  const promise = this.enqueueRequest({
6658
6812
  description: "Create Document",
6659
6813
  method: HttpMethod.POST,
6660
- url: `/projects/${activeProjectId}/documents/`,
6814
+ url: "/documents/",
6661
6815
  payload: offlineDocument,
6662
6816
  queryParams: {
6663
6817
  parent_document: offlineDocument.parent_document ?? void 0
@@ -6669,7 +6823,7 @@ var __publicField = (obj, key, value) => {
6669
6823
  promise.catch(() => {
6670
6824
  this.dispatch(removeDocuments([offlineDocument.offline_id]));
6671
6825
  });
6672
- return [submittedDocument, promise];
6826
+ return [offlineDocument, promise];
6673
6827
  }
6674
6828
  update(document2) {
6675
6829
  const { store } = this.client;
@@ -6816,6 +6970,24 @@ var __publicField = (obj, key, value) => {
6816
6970
  async deleteDocumentAttachment(attachmentId) {
6817
6971
  return this.deleteAttachment(attachmentId);
6818
6972
  }
6973
+ async refreshStore(projectId, organizationId) {
6974
+ const projectDocumentAttachments = await this.enqueueRequest({
6975
+ description: "Get document attachments",
6976
+ method: HttpMethod.GET,
6977
+ url: `/projects/${projectId}/document-attachments/`,
6978
+ blocks: [],
6979
+ blockers: []
6980
+ });
6981
+ this.dispatch(this.initializeAttachments(projectDocumentAttachments));
6982
+ const organizationDocumentAttachments = await this.enqueueRequest({
6983
+ description: "Get document attachments",
6984
+ method: HttpMethod.GET,
6985
+ url: `/organizations/${organizationId}/document-attachments/`,
6986
+ blocks: [],
6987
+ blockers: []
6988
+ });
6989
+ this.dispatch(this.addAttachments(organizationDocumentAttachments));
6990
+ }
6819
6991
  }
6820
6992
  class AgentService extends BaseApiService {
6821
6993
  async startConversation(prompt) {
@@ -7229,6 +7401,72 @@ var __publicField = (obj, key, value) => {
7229
7401
  store.dispatch(initializeGeoImages(result));
7230
7402
  }
7231
7403
  }
7404
+ class IssueAssociationService extends BaseUploadService {
7405
+ add(payload) {
7406
+ const { store } = this.client;
7407
+ const submittedAt = (/* @__PURE__ */ new Date()).toISOString();
7408
+ const createdBy = store.getState().userReducer.currentUser.id;
7409
+ const offlineIssueAssociation = offline({
7410
+ ...payload,
7411
+ submitted_at: submittedAt,
7412
+ created_by: createdBy
7413
+ });
7414
+ this.dispatch(addIssueAssociation(offlineIssueAssociation));
7415
+ const promise = this.enqueueRequest({
7416
+ description: "Add issue association",
7417
+ method: HttpMethod.POST,
7418
+ url: "/issues/associations/",
7419
+ payload: {
7420
+ offline_id: offlineIssueAssociation.offline_id,
7421
+ submitted_at: submittedAt,
7422
+ created_by: createdBy,
7423
+ ...payload
7424
+ },
7425
+ blockers: [
7426
+ payload.associated_issue,
7427
+ ...payload.issue ? [payload.issue] : [],
7428
+ ...payload.asset ? [payload.asset] : []
7429
+ ],
7430
+ blocks: [offlineIssueAssociation.offline_id]
7431
+ });
7432
+ promise.then((issueAssociation) => {
7433
+ this.dispatch(updateIssueAssociation(issueAssociation));
7434
+ }).catch(() => {
7435
+ this.dispatch(deleteIssueAssociation(offlineIssueAssociation.offline_id));
7436
+ });
7437
+ return [offlineIssueAssociation, promise];
7438
+ }
7439
+ async delete(id) {
7440
+ const { store } = this.client;
7441
+ const issueAssociation = selectIssueAssociationById(id)(store.getState());
7442
+ if (!issueAssociation) {
7443
+ throw new Error(`Issue association with id ${id} not found in store.`);
7444
+ }
7445
+ this.dispatch(deleteIssueAssociation(id));
7446
+ const promise = this.enqueueRequest({
7447
+ description: "Delete issue association",
7448
+ method: HttpMethod.DELETE,
7449
+ url: `/issues/associations/${id}/`,
7450
+ blockers: [id],
7451
+ blocks: []
7452
+ });
7453
+ promise.catch(() => {
7454
+ this.dispatch(addIssueAssociation(issueAssociation));
7455
+ });
7456
+ return promise;
7457
+ }
7458
+ async refreshStore(projectId) {
7459
+ const issueAssociations = await this.enqueueRequest({
7460
+ description: "Fetch issue associations",
7461
+ method: HttpMethod.GET,
7462
+ url: "/issues/associations/",
7463
+ queryParams: { project_id: projectId.toString() },
7464
+ blockers: [],
7465
+ blocks: []
7466
+ });
7467
+ this.dispatch(initializeIssueAssociations(issueAssociations));
7468
+ }
7469
+ }
7232
7470
  exports2.APIError = APIError;
7233
7471
  exports2.AgentService = AgentService;
7234
7472
  exports2.AssetAttachmentService = AssetAttachmentService;
@@ -7256,6 +7494,7 @@ var __publicField = (obj, key, value) => {
7256
7494
  exports2.GREEN = GREEN;
7257
7495
  exports2.GeoImageService = GeoImageService;
7258
7496
  exports2.HttpMethod = HttpMethod;
7497
+ exports2.IssueAssociationService = IssueAssociationService;
7259
7498
  exports2.IssueAttachmentService = IssueAttachmentService;
7260
7499
  exports2.IssueCommentService = IssueCommentService;
7261
7500
  exports2.IssuePriority = IssuePriority;
@@ -7317,6 +7556,8 @@ var __publicField = (obj, key, value) => {
7317
7556
  exports2.addGeoImage = addGeoImage;
7318
7557
  exports2.addGeoImages = addGeoImages;
7319
7558
  exports2.addIssue = addIssue;
7559
+ exports2.addIssueAssociation = addIssueAssociation;
7560
+ exports2.addIssueAssociations = addIssueAssociations;
7320
7561
  exports2.addIssueAttachment = addIssueAttachment;
7321
7562
  exports2.addIssueAttachments = addIssueAttachments;
7322
7563
  exports2.addIssueComment = addIssueComment;
@@ -7394,6 +7635,8 @@ var __publicField = (obj, key, value) => {
7394
7635
  exports2.deleteGeoImage = deleteGeoImage;
7395
7636
  exports2.deleteGeoImages = deleteGeoImages;
7396
7637
  exports2.deleteIssue = deleteIssue;
7638
+ exports2.deleteIssueAssociation = deleteIssueAssociation;
7639
+ exports2.deleteIssueAssociations = deleteIssueAssociations;
7397
7640
  exports2.deleteIssueAttachment = deleteIssueAttachment;
7398
7641
  exports2.deleteIssueAttachments = deleteIssueAttachments;
7399
7642
  exports2.deleteIssueComment = deleteIssueComment;
@@ -7466,6 +7709,7 @@ var __publicField = (obj, key, value) => {
7466
7709
  exports2.initializeFormSubmissions = initializeFormSubmissions;
7467
7710
  exports2.initializeForms = initializeForms;
7468
7711
  exports2.initializeGeoImages = initializeGeoImages;
7712
+ exports2.initializeIssueAssociations = initializeIssueAssociations;
7469
7713
  exports2.initializeIssueAttachments = initializeIssueAttachments;
7470
7714
  exports2.initializeIssueTypes = initializeIssueTypes;
7471
7715
  exports2.initializeIssueUpdates = initializeIssueUpdates;
@@ -7478,6 +7722,8 @@ var __publicField = (obj, key, value) => {
7478
7722
  exports2.initializeTeams = initializeTeams;
7479
7723
  exports2.initializeWorkspaces = initializeWorkspaces;
7480
7724
  exports2.isToday = isToday;
7725
+ exports2.issueAssociationReducer = issueAssociationReducer;
7726
+ exports2.issueAssociationSlice = issueAssociationSlice;
7481
7727
  exports2.issueAttachmentReducer = issueAttachmentReducer;
7482
7728
  exports2.issueAttachmentSlice = issueAttachmentSlice;
7483
7729
  exports2.issueCommentReducer = issueCommentReducer;
@@ -7613,6 +7859,7 @@ var __publicField = (obj, key, value) => {
7613
7859
  exports2.selectFormRevisions = selectFormRevisions;
7614
7860
  exports2.selectFormRevisionsOfForm = selectFormRevisionsOfForm;
7615
7861
  exports2.selectFormSubmission = selectFormSubmission;
7862
+ exports2.selectFormSubmissionAttachemntsByIds = selectFormSubmissionAttachemntsByIds;
7616
7863
  exports2.selectFormSubmissionAttachmentsMapping = selectFormSubmissionAttachmentsMapping;
7617
7864
  exports2.selectFormSubmissions = selectFormSubmissions;
7618
7865
  exports2.selectFormSubmissionsByAssets = selectFormSubmissionsByAssets;
@@ -7633,6 +7880,11 @@ var __publicField = (obj, key, value) => {
7633
7880
  exports2.selectIsImportingProjectFile = selectIsImportingProjectFile;
7634
7881
  exports2.selectIsLoggedIn = selectIsLoggedIn;
7635
7882
  exports2.selectIssue = selectIssue;
7883
+ exports2.selectIssueAssociationById = selectIssueAssociationById;
7884
+ exports2.selectIssueAssociationMapping = selectIssueAssociationMapping;
7885
+ exports2.selectIssueAssociationsOfAsset = selectIssueAssociationsOfAsset;
7886
+ exports2.selectIssueAssociationsOfIssue = selectIssueAssociationsOfIssue;
7887
+ exports2.selectIssueAssociationsToIssue = selectIssueAssociationsToIssue;
7636
7888
  exports2.selectIssueAttachment = selectIssueAttachment;
7637
7889
  exports2.selectIssueAttachmentMapping = selectIssueAttachmentMapping;
7638
7890
  exports2.selectIssueAttachments = selectIssueAttachments;
@@ -7737,6 +7989,8 @@ var __publicField = (obj, key, value) => {
7737
7989
  exports2.setGeoImages = setGeoImages;
7738
7990
  exports2.setIsFetchingInitialData = setIsFetchingInitialData;
7739
7991
  exports2.setIsImportingProjectFile = setIsImportingProjectFile;
7992
+ exports2.setIssueAssociation = setIssueAssociation;
7993
+ exports2.setIssueAssociations = setIssueAssociations;
7740
7994
  exports2.setIssueAttachment = setIssueAttachment;
7741
7995
  exports2.setIssueAttachments = setIssueAttachments;
7742
7996
  exports2.setIssueComment = setIssueComment;
@@ -7790,6 +8044,8 @@ var __publicField = (obj, key, value) => {
7790
8044
  exports2.updateGeoImage = updateGeoImage;
7791
8045
  exports2.updateGeoImages = updateGeoImages;
7792
8046
  exports2.updateIssue = updateIssue;
8047
+ exports2.updateIssueAssociation = updateIssueAssociation;
8048
+ exports2.updateIssueAssociations = updateIssueAssociations;
7793
8049
  exports2.updateIssueAttachment = updateIssueAttachment;
7794
8050
  exports2.updateIssueAttachments = updateIssueAttachments;
7795
8051
  exports2.updateIssueType = updateIssueType;