@overmap-ai/core 1.0.60-forms-removal.9 → 1.0.60-geo-images.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$A = {
370
+ const initialState$B = {
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$A,
378
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$A)),
377
+ initialState: initialState$B,
378
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$B)),
379
379
  reducers: {
380
380
  setTokens: (state, action) => {
381
381
  state.accessToken = action.payload.accessToken;
@@ -842,7 +842,7 @@ var __publicField = (obj, key, value) => {
842
842
  };
843
843
  }
844
844
  const categoryAdapter = createModelAdapter((category) => category.offline_id);
845
- const initialState$z = categoryAdapter.getInitialState({
845
+ const initialState$A = categoryAdapter.getInitialState({
846
846
  categoryVisibility: {
847
847
  hiddenCategoryIds: [],
848
848
  isNullCategoryHidden: false
@@ -850,8 +850,8 @@ var __publicField = (obj, key, value) => {
850
850
  });
851
851
  const categorySlice = toolkit.createSlice({
852
852
  name: "categories",
853
- initialState: initialState$z,
854
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$z)),
853
+ initialState: initialState$A,
854
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$A)),
855
855
  reducers: {
856
856
  initializeCategories: (state, action) => {
857
857
  categoryAdapter.initialize(state, action);
@@ -933,13 +933,13 @@ var __publicField = (obj, key, value) => {
933
933
  };
934
934
  const categoryReducer = categorySlice.reducer;
935
935
  const assetTypeAdapter = createModelAdapter((assetType) => assetType.offline_id);
936
- const initialState$y = assetTypeAdapter.getInitialState({
936
+ const initialState$z = assetTypeAdapter.getInitialState({
937
937
  hiddenAssetTypeIds: {}
938
938
  });
939
939
  const assetTypeSlice = toolkit.createSlice({
940
940
  name: "assetTypes",
941
- initialState: initialState$y,
942
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$y)),
941
+ initialState: initialState$z,
942
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$z)),
943
943
  reducers: {
944
944
  initializeAssetTypes: assetTypeAdapter.initialize,
945
945
  addAssetType: assetTypeAdapter.addOne,
@@ -988,11 +988,11 @@ var __publicField = (obj, key, value) => {
988
988
  const selectHiddenAssetTypeIds = (state) => state.assetTypeReducer.hiddenAssetTypeIds;
989
989
  const assetTypeReducer = assetTypeSlice.reducer;
990
990
  const assetAdapter = createModelAdapter((asset) => asset.offline_id);
991
- const initialState$x = assetAdapter.getInitialState({});
991
+ const initialState$y = assetAdapter.getInitialState({});
992
992
  const assetSlice = toolkit.createSlice({
993
993
  name: "assets",
994
- initialState: initialState$x,
995
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$x)),
994
+ initialState: initialState$y,
995
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$y)),
996
996
  reducers: {
997
997
  initializeAssets: (state, action) => {
998
998
  assetAdapter.initialize(state, action);
@@ -1095,11 +1095,11 @@ var __publicField = (obj, key, value) => {
1095
1095
  };
1096
1096
  const assetReducer = assetSlice.reducer;
1097
1097
  const assetAttachmentAdapter = createModelAdapter((attachment) => attachment.offline_id);
1098
- const initialState$w = assetAttachmentAdapter.getInitialState({});
1098
+ const initialState$x = assetAttachmentAdapter.getInitialState({});
1099
1099
  const assetAttachmentSlice = toolkit.createSlice({
1100
1100
  name: "assetAttachments",
1101
- initialState: initialState$w,
1102
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$w)),
1101
+ initialState: initialState$x,
1102
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$x)),
1103
1103
  reducers: {
1104
1104
  initializeAssetAttachments: assetAttachmentAdapter.initialize,
1105
1105
  addAssetAttachment: assetAttachmentAdapter.addOne,
@@ -1157,13 +1157,13 @@ var __publicField = (obj, key, value) => {
1157
1157
  )
1158
1158
  );
1159
1159
  const assetAttachmentReducer = assetAttachmentSlice.reducer;
1160
- const initialState$v = {
1160
+ const initialState$w = {
1161
1161
  completionsByAssetId: {}
1162
1162
  };
1163
1163
  const assetStageCompletionSlice = toolkit.createSlice({
1164
1164
  name: "assetStageCompletions",
1165
- initialState: initialState$v,
1166
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$v)),
1165
+ initialState: initialState$w,
1166
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$w)),
1167
1167
  reducers: {
1168
1168
  addStageCompletion: (state, action) => {
1169
1169
  let stageToCompletionDateMapping = state.completionsByAssetId[action.payload.asset];
@@ -1215,11 +1215,11 @@ var __publicField = (obj, key, value) => {
1215
1215
  );
1216
1216
  const assetStageCompletionReducer = assetStageCompletionSlice.reducer;
1217
1217
  const assetStageAdapter = createModelAdapter((assetStage) => assetStage.offline_id);
1218
- const initialState$u = assetStageAdapter.getInitialState({});
1218
+ const initialState$v = assetStageAdapter.getInitialState({});
1219
1219
  const assetStageSlice = toolkit.createSlice({
1220
1220
  name: "assetStages",
1221
- initialState: initialState$u,
1222
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$u)),
1221
+ initialState: initialState$v,
1222
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$v)),
1223
1223
  reducers: {
1224
1224
  initializeStages: assetStageAdapter.initialize,
1225
1225
  setStage: assetStageAdapter.setOne,
@@ -1300,11 +1300,11 @@ var __publicField = (obj, key, value) => {
1300
1300
  const assetTypeAttachmentAdapter = createModelAdapter(
1301
1301
  (attachment) => attachment.offline_id
1302
1302
  );
1303
- const initialState$t = assetTypeAttachmentAdapter.getInitialState({});
1303
+ const initialState$u = assetTypeAttachmentAdapter.getInitialState({});
1304
1304
  const assetTypeAttachmentSlice = toolkit.createSlice({
1305
1305
  name: "assetTypeAttachments",
1306
- initialState: initialState$t,
1307
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$t)),
1306
+ initialState: initialState$u,
1307
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$u)),
1308
1308
  reducers: {
1309
1309
  initializeAssetTypeAttachments: assetTypeAttachmentAdapter.initialize,
1310
1310
  addAssetTypeAttachment: assetTypeAttachmentAdapter.addOne,
@@ -1363,12 +1363,12 @@ var __publicField = (obj, key, value) => {
1363
1363
  );
1364
1364
  const assetTypeAttachmentReducer = assetTypeAttachmentSlice.reducer;
1365
1365
  const workspaceAdapter = createModelAdapter((workspace) => workspace.offline_id);
1366
- const initialState$s = workspaceAdapter.getInitialState({
1366
+ const initialState$t = workspaceAdapter.getInitialState({
1367
1367
  activeWorkspaceId: null
1368
1368
  });
1369
1369
  const workspaceSlice = toolkit.createSlice({
1370
1370
  name: "workspace",
1371
- initialState: initialState$s,
1371
+ initialState: initialState$t,
1372
1372
  reducers: {
1373
1373
  initializeWorkspaces: workspaceAdapter.initialize,
1374
1374
  setWorkspaces: workspaceAdapter.setMany,
@@ -1421,16 +1421,16 @@ var __publicField = (obj, key, value) => {
1421
1421
  const workspaceReducer = workspaceSlice.reducer;
1422
1422
  const maxRecentIssues = 10;
1423
1423
  const issueAdapter = createModelAdapter((issue) => issue.offline_id);
1424
- const initialState$r = issueAdapter.getInitialState({
1424
+ const initialState$s = issueAdapter.getInitialState({
1425
1425
  visibleStatuses: [IssueStatus.BACKLOG, IssueStatus.SELECTED],
1426
1426
  visibleUserIds: null,
1427
1427
  recentIssueIds: []
1428
1428
  });
1429
1429
  const issueSlice = toolkit.createSlice({
1430
1430
  name: "issues",
1431
- initialState: initialState$r,
1431
+ initialState: initialState$s,
1432
1432
  extraReducers: (builder) => builder.addCase("RESET", (state) => {
1433
- Object.assign(state, initialState$r);
1433
+ Object.assign(state, initialState$s);
1434
1434
  }),
1435
1435
  reducers: {
1436
1436
  initializeIssues: issueAdapter.initialize,
@@ -1627,12 +1627,12 @@ var __publicField = (obj, key, value) => {
1627
1627
  );
1628
1628
  const issueReducer = issueSlice.reducer;
1629
1629
  const issueTypeAdapter = createModelAdapter((issueType) => issueType.offline_id);
1630
- const initialState$q = issueTypeAdapter.getInitialState({});
1630
+ const initialState$r = issueTypeAdapter.getInitialState({});
1631
1631
  const issueTypeSlice = toolkit.createSlice({
1632
1632
  name: "issueTypes",
1633
- initialState: initialState$q,
1633
+ initialState: initialState$r,
1634
1634
  extraReducers: (builder) => builder.addCase("RESET", (state) => {
1635
- Object.assign(state, initialState$q);
1635
+ Object.assign(state, initialState$r);
1636
1636
  }),
1637
1637
  reducers: {
1638
1638
  initializeIssueTypes: issueTypeAdapter.initialize,
@@ -1681,15 +1681,15 @@ var __publicField = (obj, key, value) => {
1681
1681
  return ((_a2 = selectIssuesOfIssueType(issueTypeId)(state)) == null ? void 0 : _a2.length) ?? 0;
1682
1682
  };
1683
1683
  const issueTypeReducer = issueTypeSlice.reducer;
1684
- const initialState$p = {
1684
+ const initialState$q = {
1685
1685
  s3Urls: {}
1686
1686
  };
1687
1687
  const msPerHour = 1e3 * 60 * 60;
1688
1688
  const msPerWeek = msPerHour * 24 * 7;
1689
1689
  const fileSlice = toolkit.createSlice({
1690
1690
  name: "file",
1691
- initialState: initialState$p,
1692
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$p)),
1691
+ initialState: initialState$q,
1692
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$q)),
1693
1693
  reducers: {
1694
1694
  setUploadUrl: (state, action) => {
1695
1695
  const { url, fields, sha1 } = action.payload;
@@ -1770,7 +1770,7 @@ var __publicField = (obj, key, value) => {
1770
1770
  LicenseStatus2[LicenseStatus2["PAST_DUE"] = 8] = "PAST_DUE";
1771
1771
  return LicenseStatus2;
1772
1772
  })(LicenseStatus || {});
1773
- const initialState$o = {
1773
+ const initialState$p = {
1774
1774
  users: {},
1775
1775
  currentUser: {
1776
1776
  id: 0,
@@ -1781,8 +1781,8 @@ var __publicField = (obj, key, value) => {
1781
1781
  };
1782
1782
  const userSlice = toolkit.createSlice({
1783
1783
  name: "users",
1784
- initialState: initialState$o,
1785
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$o)),
1784
+ initialState: initialState$p,
1785
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$p)),
1786
1786
  reducers: {
1787
1787
  setUsers: (state, action) => {
1788
1788
  const usersMapping = {};
@@ -1847,11 +1847,11 @@ var __publicField = (obj, key, value) => {
1847
1847
  const organizationAccessAdapter = createModelAdapter(
1848
1848
  (organizationAccess) => organizationAccess.offline_id
1849
1849
  );
1850
- const initialState$n = organizationAccessAdapter.getInitialState({});
1850
+ const initialState$o = organizationAccessAdapter.getInitialState({});
1851
1851
  const organizationAccessSlice = toolkit.createSlice({
1852
1852
  name: "organizationAccess",
1853
- initialState: initialState$n,
1854
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$n)),
1853
+ initialState: initialState$o,
1854
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$o)),
1855
1855
  reducers: {
1856
1856
  initializeOrganizationAccesses: organizationAccessAdapter.initialize,
1857
1857
  updateOrganizationAccess: organizationAccessAdapter.updateOne,
@@ -1888,11 +1888,11 @@ var __publicField = (obj, key, value) => {
1888
1888
  };
1889
1889
  const organizationAccessReducer = organizationAccessSlice.reducer;
1890
1890
  const licenseAdapter = createModelAdapter((license) => license.offline_id);
1891
- const initialState$m = licenseAdapter.getInitialState({});
1891
+ const initialState$n = licenseAdapter.getInitialState({});
1892
1892
  const licenseSlice = toolkit.createSlice({
1893
1893
  name: "license",
1894
- initialState: initialState$m,
1895
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$m)),
1894
+ initialState: initialState$n,
1895
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$n)),
1896
1896
  reducers: {
1897
1897
  setLicenses: licenseAdapter.initialize,
1898
1898
  addLicenses: licenseAdapter.addMany,
@@ -1918,11 +1918,11 @@ var __publicField = (obj, key, value) => {
1918
1918
  );
1919
1919
  const licenseReducer = licenseSlice.reducer;
1920
1920
  const projectAccessAdapter = createModelAdapter((projectAccess) => projectAccess.offline_id);
1921
- const initialState$l = projectAccessAdapter.getInitialState({});
1921
+ const initialState$m = projectAccessAdapter.getInitialState({});
1922
1922
  const projectAccessSlice = toolkit.createSlice({
1923
1923
  name: "projectAccess",
1924
- initialState: initialState$l,
1925
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$l)),
1924
+ initialState: initialState$m,
1925
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$m)),
1926
1926
  reducers: {
1927
1927
  setProjectAccesses: projectAccessAdapter.initialize,
1928
1928
  updateProjectAccess: projectAccessAdapter.updateOne,
@@ -1968,7 +1968,7 @@ var __publicField = (obj, key, value) => {
1968
1968
  return projectAccesses;
1969
1969
  };
1970
1970
  const projectAccessReducer = projectAccessSlice.reducer;
1971
- const initialState$k = {
1971
+ const initialState$l = {
1972
1972
  projects: {},
1973
1973
  activeProjectId: null,
1974
1974
  recentProjectIds: [],
@@ -1976,7 +1976,7 @@ var __publicField = (obj, key, value) => {
1976
1976
  };
1977
1977
  const projectSlice = toolkit.createSlice({
1978
1978
  name: "projects",
1979
- initialState: initialState$k,
1979
+ initialState: initialState$l,
1980
1980
  reducers: {
1981
1981
  setProjects: (state, action) => {
1982
1982
  const projectsMap = {};
@@ -2105,14 +2105,14 @@ var __publicField = (obj, key, value) => {
2105
2105
  });
2106
2106
  }
2107
2107
  );
2108
- const initialState$j = {
2108
+ const initialState$k = {
2109
2109
  organizations: {},
2110
2110
  activeOrganizationId: null
2111
2111
  };
2112
2112
  const organizationSlice = toolkit.createSlice({
2113
2113
  name: "organizations",
2114
- initialState: initialState$j,
2115
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$j)),
2114
+ initialState: initialState$k,
2115
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$k)),
2116
2116
  reducers: {
2117
2117
  setOrganizations: (state, action) => {
2118
2118
  for (const org of action.payload) {
@@ -2232,14 +2232,14 @@ var __publicField = (obj, key, value) => {
2232
2232
  }
2233
2233
  };
2234
2234
  };
2235
- const initialState$i = {
2235
+ const initialState$j = {
2236
2236
  deletedRequests: [],
2237
2237
  latestRetryTime: 0
2238
2238
  };
2239
2239
  const outboxSlice = toolkit.createSlice({
2240
2240
  name: "outbox",
2241
- initialState: initialState$i,
2242
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$i)),
2241
+ initialState: initialState$j,
2242
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$j)),
2243
2243
  reducers: {
2244
2244
  // enqueueActions is a reducer that does nothing but enqueue API request to the Redux Offline outbox
2245
2245
  // Whenever an issue is being created, a reducer addIssue() is responsible for adding it to the offline store
@@ -2271,7 +2271,7 @@ var __publicField = (obj, key, value) => {
2271
2271
  const selectLatestRetryTime = (state) => state.outboxReducer.latestRetryTime;
2272
2272
  const { enqueueRequest, markForDeletion, markAsDeleted, _setLatestRetryTime } = outboxSlice.actions;
2273
2273
  const outboxReducer = outboxSlice.reducer;
2274
- const initialState$h = {
2274
+ const initialState$i = {
2275
2275
  projectFiles: {},
2276
2276
  activeProjectFileId: null,
2277
2277
  isImportingProjectFile: false,
@@ -2279,8 +2279,8 @@ var __publicField = (obj, key, value) => {
2279
2279
  };
2280
2280
  const projectFileSlice = toolkit.createSlice({
2281
2281
  name: "projectFiles",
2282
- initialState: initialState$h,
2283
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$h)),
2282
+ initialState: initialState$i,
2283
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$i)),
2284
2284
  reducers: {
2285
2285
  addOrReplaceProjectFiles: (state, action) => {
2286
2286
  for (let fileObj of action.payload) {
@@ -2382,11 +2382,11 @@ var __publicField = (obj, key, value) => {
2382
2382
  const selectIsImportingProjectFile = (state) => state.projectFileReducer.isImportingProjectFile;
2383
2383
  const projectFileReducer = projectFileSlice.reducer;
2384
2384
  const projectAttachmentAdapter = createModelAdapter((attachment) => attachment.offline_id);
2385
- const initialState$g = projectAttachmentAdapter.getInitialState({});
2385
+ const initialState$h = projectAttachmentAdapter.getInitialState({});
2386
2386
  const projectAttachmentSlice = toolkit.createSlice({
2387
2387
  name: "projectAttachments",
2388
- initialState: initialState$g,
2389
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$g)),
2388
+ initialState: initialState$h,
2389
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$h)),
2390
2390
  reducers: {
2391
2391
  initializeProjectAttachments: projectAttachmentAdapter.initialize,
2392
2392
  addProjectAttachment: projectAttachmentAdapter.addOne,
@@ -2444,12 +2444,12 @@ var __publicField = (obj, key, value) => {
2444
2444
  )
2445
2445
  );
2446
2446
  const projectAttachmentReducer = projectAttachmentSlice.reducer;
2447
- const initialState$f = {
2447
+ const initialState$g = {
2448
2448
  isRehydrated: false
2449
2449
  };
2450
2450
  const rehydratedSlice = toolkit.createSlice({
2451
2451
  name: "rehydrated",
2452
- initialState: initialState$f,
2452
+ initialState: initialState$g,
2453
2453
  // The `reducers` field lets us define reducers and generate associated actions
2454
2454
  reducers: {
2455
2455
  setRehydrated: (state, action) => {
@@ -2460,13 +2460,13 @@ var __publicField = (obj, key, value) => {
2460
2460
  const { setRehydrated } = rehydratedSlice.actions;
2461
2461
  const selectRehydrated = (state) => state.rehydratedReducer.isRehydrated;
2462
2462
  const rehydratedReducer = rehydratedSlice.reducer;
2463
- const initialState$e = {
2463
+ const initialState$f = {
2464
2464
  isFetchingInitialData: false
2465
2465
  };
2466
2466
  const settingSlice = toolkit.createSlice({
2467
2467
  name: "settings",
2468
- initialState: initialState$e,
2469
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$e)),
2468
+ initialState: initialState$f,
2469
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$f)),
2470
2470
  reducers: {
2471
2471
  setIsFetchingInitialData: (state, action) => {
2472
2472
  state.isFetchingInitialData = action.payload;
@@ -2490,11 +2490,11 @@ var __publicField = (obj, key, value) => {
2490
2490
  }
2491
2491
  };
2492
2492
  const formRevisionAdapter = createModelAdapter((revision) => revision.offline_id);
2493
- const initialState$d = formRevisionAdapter.getInitialState({});
2493
+ const initialState$e = formRevisionAdapter.getInitialState({});
2494
2494
  const formRevisionsSlice = toolkit.createSlice({
2495
2495
  name: "formRevisions",
2496
- initialState: initialState$d,
2497
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$d)),
2496
+ initialState: initialState$e,
2497
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$e)),
2498
2498
  reducers: {
2499
2499
  initializeFormRevisions: formRevisionAdapter.initialize,
2500
2500
  setFormRevision: formRevisionAdapter.setOne,
@@ -2587,11 +2587,11 @@ var __publicField = (obj, key, value) => {
2587
2587
  });
2588
2588
  const formRevisionReducer = formRevisionsSlice.reducer;
2589
2589
  const formAdapter = createModelAdapter((form) => form.offline_id);
2590
- const initialState$c = formAdapter.getInitialState({});
2590
+ const initialState$d = formAdapter.getInitialState({});
2591
2591
  const formSlice = toolkit.createSlice({
2592
2592
  name: "forms",
2593
- initialState: initialState$c,
2594
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$c)),
2593
+ initialState: initialState$d,
2594
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$d)),
2595
2595
  reducers: {
2596
2596
  setForms: formAdapter.initialize,
2597
2597
  setForm: formAdapter.setOne,
@@ -2673,11 +2673,11 @@ var __publicField = (obj, key, value) => {
2673
2673
  });
2674
2674
  const formReducer = formSlice.reducer;
2675
2675
  const submissionAdapter = createModelAdapter((submission) => submission.offline_id);
2676
- const initialState$b = submissionAdapter.getInitialState({});
2676
+ const initialState$c = submissionAdapter.getInitialState({});
2677
2677
  const formSubmissionSlice = toolkit.createSlice({
2678
2678
  name: "formSubmissions",
2679
- initialState: initialState$b,
2680
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$b)),
2679
+ initialState: initialState$c,
2680
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$c)),
2681
2681
  reducers: {
2682
2682
  setFormSubmission: submissionAdapter.setOne,
2683
2683
  setFormSubmissions: submissionAdapter.setMany,
@@ -2815,11 +2815,11 @@ var __publicField = (obj, key, value) => {
2815
2815
  const formSubmissionAttachmentAdapter = createModelAdapter(
2816
2816
  (attachment) => attachment.offline_id
2817
2817
  );
2818
- const initialState$a = formSubmissionAttachmentAdapter.getInitialState({});
2818
+ const initialState$b = formSubmissionAttachmentAdapter.getInitialState({});
2819
2819
  const formSubmissionAttachmentSlice = toolkit.createSlice({
2820
2820
  name: "formSubmissionAttachments",
2821
- initialState: initialState$a,
2822
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$a)),
2821
+ initialState: initialState$b,
2822
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$b)),
2823
2823
  reducers: {
2824
2824
  initializeFormSubmissionAttachments: formSubmissionAttachmentAdapter.initialize,
2825
2825
  addFormSubmissionAttachment: formSubmissionAttachmentAdapter.addOne,
@@ -2858,11 +2858,11 @@ var __publicField = (obj, key, value) => {
2858
2858
  const formRevisionAttachmentAdapter = createModelAdapter(
2859
2859
  (attachment) => attachment.offline_id
2860
2860
  );
2861
- const initialState$9 = formRevisionAttachmentAdapter.getInitialState({});
2861
+ const initialState$a = formRevisionAttachmentAdapter.getInitialState({});
2862
2862
  const formRevisionAttachmentSlice = toolkit.createSlice({
2863
2863
  name: "formRevisionAttachments",
2864
- initialState: initialState$9,
2865
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$9)),
2864
+ initialState: initialState$a,
2865
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$a)),
2866
2866
  reducers: {
2867
2867
  initializeFormRevisionAttachments: formRevisionAttachmentAdapter.initialize,
2868
2868
  addFormRevisionAttachment: formRevisionAttachmentAdapter.addOne,
@@ -2899,10 +2899,10 @@ var __publicField = (obj, key, value) => {
2899
2899
  );
2900
2900
  const formRevisionAttachmentReducer = formRevisionAttachmentSlice.reducer;
2901
2901
  const emailDomainAdapter = createModelAdapter((emailDomain) => emailDomain.offline_id);
2902
- const initialState$8 = emailDomainAdapter.getInitialState({});
2902
+ const initialState$9 = emailDomainAdapter.getInitialState({});
2903
2903
  const emailDomainsSlice = toolkit.createSlice({
2904
2904
  name: "emailDomains",
2905
- initialState: initialState$8,
2905
+ initialState: initialState$9,
2906
2906
  reducers: {
2907
2907
  initializeEmailDomains: emailDomainAdapter.initialize,
2908
2908
  addEmailDomain: emailDomainAdapter.addOne,
@@ -2921,14 +2921,14 @@ var __publicField = (obj, key, value) => {
2921
2921
  )
2922
2922
  );
2923
2923
  const emailDomainsReducer = emailDomainsSlice.reducer;
2924
- const initialState$7 = {
2924
+ const initialState$8 = {
2925
2925
  documents: {}
2926
2926
  };
2927
2927
  const documentSlice = toolkit.createSlice({
2928
2928
  name: "documents",
2929
- initialState: initialState$7,
2929
+ initialState: initialState$8,
2930
2930
  extraReducers: (builder) => builder.addCase("RESET", (state) => {
2931
- Object.assign(state, initialState$7);
2931
+ Object.assign(state, initialState$8);
2932
2932
  }),
2933
2933
  reducers: {
2934
2934
  setDocuments: (state, action) => {
@@ -3103,11 +3103,11 @@ var __publicField = (obj, key, value) => {
3103
3103
  );
3104
3104
  const documentsReducer = documentSlice.reducer;
3105
3105
  const documentAttachmentAdapter = createModelAdapter((attachment) => attachment.offline_id);
3106
- const initialState$6 = documentAttachmentAdapter.getInitialState({});
3106
+ const initialState$7 = documentAttachmentAdapter.getInitialState({});
3107
3107
  const documentAttachmentSlice = toolkit.createSlice({
3108
3108
  name: "documentAttachments",
3109
- initialState: initialState$6,
3110
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$6)),
3109
+ initialState: initialState$7,
3110
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$7)),
3111
3111
  reducers: {
3112
3112
  initializeDocumentAttachments: documentAttachmentAdapter.initialize,
3113
3113
  addDocumentAttachment: documentAttachmentAdapter.addOne,
@@ -3166,11 +3166,11 @@ var __publicField = (obj, key, value) => {
3166
3166
  );
3167
3167
  const documentAttachmentReducer = documentAttachmentSlice.reducer;
3168
3168
  const teamAdapter = createModelAdapter((team) => team.offline_id);
3169
- const initialState$5 = teamAdapter.getInitialState({});
3169
+ const initialState$6 = teamAdapter.getInitialState({});
3170
3170
  const teamSlice = toolkit.createSlice({
3171
3171
  name: "teams",
3172
- initialState: initialState$5,
3173
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$5)),
3172
+ initialState: initialState$6,
3173
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$6)),
3174
3174
  reducers: {
3175
3175
  setTeam: teamAdapter.setOne,
3176
3176
  setTeams: teamAdapter.initialize,
@@ -3204,11 +3204,11 @@ var __publicField = (obj, key, value) => {
3204
3204
  const agentUserConversationAdapter = createModelAdapter(
3205
3205
  (conversation) => conversation.offline_id
3206
3206
  );
3207
- const initialState$4 = agentUserConversationAdapter.getInitialState({});
3207
+ const initialState$5 = agentUserConversationAdapter.getInitialState({});
3208
3208
  const agentsSlice = toolkit.createSlice({
3209
3209
  name: "agents",
3210
- initialState: initialState$4,
3211
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$4)),
3210
+ initialState: initialState$5,
3211
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$5)),
3212
3212
  reducers: {
3213
3213
  initializeConversations: agentUserConversationAdapter.initialize,
3214
3214
  addConversation: agentUserConversationAdapter.addOne,
@@ -3230,11 +3230,11 @@ var __publicField = (obj, key, value) => {
3230
3230
  );
3231
3231
  const agentsReducer = agentsSlice.reducer;
3232
3232
  const issueCommentAdapter = createModelAdapter((comment) => comment.offline_id);
3233
- const initialState$3 = issueCommentAdapter.getInitialState({});
3233
+ const initialState$4 = issueCommentAdapter.getInitialState({});
3234
3234
  const issueCommentSlice = toolkit.createSlice({
3235
3235
  name: "issueComments",
3236
- initialState: initialState$3,
3237
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$3)),
3236
+ initialState: initialState$4,
3237
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$4)),
3238
3238
  reducers: {
3239
3239
  addIssueComment: issueCommentAdapter.addOne,
3240
3240
  addIssueComments: issueCommentAdapter.addMany,
@@ -3263,11 +3263,11 @@ var __publicField = (obj, key, value) => {
3263
3263
  );
3264
3264
  const issueCommentReducer = issueCommentSlice.reducer;
3265
3265
  const issueUpdateAdapter = createModelAdapter((issueUpdate) => issueUpdate.offline_id);
3266
- const initialState$2 = issueUpdateAdapter.getInitialState({});
3266
+ const initialState$3 = issueUpdateAdapter.getInitialState({});
3267
3267
  const issueUpdateSlice = toolkit.createSlice({
3268
3268
  name: "issueUpdates",
3269
- initialState: initialState$2,
3270
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$2)),
3269
+ initialState: initialState$3,
3270
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$3)),
3271
3271
  reducers: {
3272
3272
  initializeIssueUpdates: issueUpdateAdapter.setMany,
3273
3273
  setIssueUpdate: issueUpdateAdapter.setOne,
@@ -3296,11 +3296,11 @@ var __publicField = (obj, key, value) => {
3296
3296
  );
3297
3297
  const issueUpdateReducer = issueUpdateSlice.reducer;
3298
3298
  const issueAttachmentAdapter = createModelAdapter((attachment) => attachment.offline_id);
3299
- const initialState$1 = issueAttachmentAdapter.getInitialState({});
3299
+ const initialState$2 = issueAttachmentAdapter.getInitialState({});
3300
3300
  const issueAttachmentSlice = toolkit.createSlice({
3301
3301
  name: "issueAttachments",
3302
- initialState: initialState$1,
3303
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$1)),
3302
+ initialState: initialState$2,
3303
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$2)),
3304
3304
  reducers: {
3305
3305
  initializeIssueAttachments: issueAttachmentAdapter.initialize,
3306
3306
  addIssueAttachment: issueAttachmentAdapter.addOne,
@@ -3358,15 +3358,59 @@ var __publicField = (obj, key, value) => {
3358
3358
  )
3359
3359
  );
3360
3360
  const issueAttachmentReducer = issueAttachmentSlice.reducer;
3361
- const initialState = {
3361
+ const initialState$1 = {
3362
3362
  version: 0
3363
3363
  };
3364
3364
  const versioningSlice = toolkit.createSlice({
3365
3365
  name: "versioning",
3366
- initialState,
3366
+ initialState: initialState$1,
3367
3367
  reducers: {}
3368
3368
  });
3369
3369
  const versioningReducer = versioningSlice.reducer;
3370
+ const geoImageAdapter = createModelAdapter((model) => model.offline_id);
3371
+ const initialState = geoImageAdapter.getInitialState({});
3372
+ const geoImageSlice = toolkit.createSlice({
3373
+ name: "geoImages",
3374
+ initialState,
3375
+ extraReducers: (builder) => {
3376
+ builder.addCase("RESET", (state) => {
3377
+ Object.assign(state, initialState);
3378
+ });
3379
+ },
3380
+ reducers: {
3381
+ initializeGeoImages: geoImageAdapter.initialize,
3382
+ setGeoImage: geoImageAdapter.setOne,
3383
+ setGeoImages: geoImageAdapter.setMany,
3384
+ addGeoImage: geoImageAdapter.addOne,
3385
+ addGeoImages: geoImageAdapter.addMany,
3386
+ updateGeoImage: geoImageAdapter.updateOne,
3387
+ updateGeoImages: geoImageAdapter.updateMany,
3388
+ deleteGeoImage: geoImageAdapter.deleteOne,
3389
+ deleteGeoImages: geoImageAdapter.deleteMany
3390
+ }
3391
+ });
3392
+ const {
3393
+ initializeGeoImages,
3394
+ setGeoImage,
3395
+ setGeoImages,
3396
+ addGeoImage,
3397
+ addGeoImages,
3398
+ updateGeoImage,
3399
+ updateGeoImages,
3400
+ deleteGeoImage,
3401
+ deleteGeoImages
3402
+ } = geoImageSlice.actions;
3403
+ const selectGeoImageMapping = (state) => state.geoImageReducer.instances;
3404
+ const selectGeoImages = (state) => Object.values(state.geoImageReducer.instances);
3405
+ const selectGeoImageById = restructureCreateSelectorWithArgs(
3406
+ toolkit.createSelector([selectGeoImageMapping, (_, id) => id], (mapImageMapping, id) => mapImageMapping[id])
3407
+ );
3408
+ const selectGeoImagesOfProject = restructureCreateSelectorWithArgs(
3409
+ toolkit.createSelector([selectGeoImages, (_, projectId) => projectId], (mapImages, projectId) => {
3410
+ return mapImages.filter((mapImage) => mapImage.project === projectId);
3411
+ })
3412
+ );
3413
+ const geoImageReducer = geoImageSlice.reducer;
3370
3414
  const fullAssetMarkerSize = 45;
3371
3415
  const DEFAULT_ISSUE_STATUS = IssueStatus.BACKLOG;
3372
3416
  const DEFAULT_ISSUE_PRIORITY = IssuePriority.MEDIUM;
@@ -3438,7 +3482,8 @@ var __publicField = (obj, key, value) => {
3438
3482
  teamReducer,
3439
3483
  agentsReducer,
3440
3484
  issueCommentReducer,
3441
- issueUpdateReducer
3485
+ issueUpdateReducer,
3486
+ geoImageReducer
3442
3487
  };
3443
3488
  const overmapReducer = toolkit.combineReducers(overmapReducers);
3444
3489
  const resetStore = "RESET";
@@ -4538,39 +4583,7 @@ var __publicField = (obj, key, value) => {
4538
4583
  this.dispatch(initializeStages(result));
4539
4584
  }
4540
4585
  }
4541
- const AttachmentModelMeta = {
4542
- [AttachmentModel.Issue]: {
4543
- name: "issue",
4544
- attachUrlPrefix: "/issues",
4545
- deleteUrlPrefix: "/issues",
4546
- fetchUrlPostfix: "/issue-attachments"
4547
- },
4548
- [AttachmentModel.Asset]: {
4549
- name: "asset",
4550
- attachUrlPrefix: "/assets",
4551
- deleteUrlPrefix: "/assets",
4552
- fetchUrlPostfix: "/asset-attachments"
4553
- },
4554
- [AttachmentModel.AssetType]: {
4555
- name: "asset type",
4556
- attachUrlPrefix: "/assets/types",
4557
- deleteUrlPrefix: "/assets/types",
4558
- fetchUrlPostfix: "/asset-type-attachments"
4559
- },
4560
- [AttachmentModel.Project]: {
4561
- name: "project",
4562
- attachUrlPrefix: "/projects",
4563
- deleteUrlPrefix: "/projects",
4564
- fetchUrlPostfix: "/attachments"
4565
- },
4566
- [AttachmentModel.Document]: {
4567
- name: "document",
4568
- attachUrlPrefix: "/documents",
4569
- deleteUrlPrefix: "/documents",
4570
- fetchUrlPostfix: "/document-attachments"
4571
- }
4572
- };
4573
- class BaseAttachmentService extends BaseApiService {
4586
+ class BaseUploadService extends BaseApiService {
4574
4587
  getNumberOfAttachmentsWithSha1(sha1) {
4575
4588
  const {
4576
4589
  issueAttachmentReducer: issueAttachmentReducer2,
@@ -4578,8 +4591,9 @@ var __publicField = (obj, key, value) => {
4578
4591
  assetTypeAttachmentReducer: assetTypeAttachmentReducer2,
4579
4592
  documentAttachmentReducer: documentAttachmentReducer2,
4580
4593
  projectAttachmentReducer: projectAttachmentReducer2,
4594
+ formRevisionAttachmentReducer: formRevisionAttachmentReducer2,
4581
4595
  formSubmissionAttachmentReducer: formSubmissionAttachmentReducer2,
4582
- formRevisionAttachmentReducer: formRevisionAttachmentReducer2
4596
+ geoImageReducer: geoImageReducer2
4583
4597
  } = this.client.store.getState();
4584
4598
  const objectsWithSha1 = [].concat(
4585
4599
  Object.values(issueAttachmentReducer2.instances),
@@ -4588,7 +4602,8 @@ var __publicField = (obj, key, value) => {
4588
4602
  Object.values(documentAttachmentReducer2.instances),
4589
4603
  Object.values(projectAttachmentReducer2.instances),
4590
4604
  Object.values(formRevisionAttachmentReducer2.instances),
4591
- Object.values(formSubmissionAttachmentReducer2.instances)
4605
+ Object.values(formSubmissionAttachmentReducer2.instances),
4606
+ Object.values(geoImageReducer2.instances)
4592
4607
  );
4593
4608
  return objectsWithSha1.filter((object) => object.file_sha1 === sha1).length;
4594
4609
  }
@@ -4608,6 +4623,40 @@ var __publicField = (obj, key, value) => {
4608
4623
  });
4609
4624
  }
4610
4625
  }
4626
+ }
4627
+ const AttachmentModelMeta = {
4628
+ [AttachmentModel.Issue]: {
4629
+ name: "issue",
4630
+ attachUrlPrefix: "/issues",
4631
+ deleteUrlPrefix: "/issues",
4632
+ fetchUrlPostfix: "/issue-attachments"
4633
+ },
4634
+ [AttachmentModel.Asset]: {
4635
+ name: "asset",
4636
+ attachUrlPrefix: "/assets",
4637
+ deleteUrlPrefix: "/assets",
4638
+ fetchUrlPostfix: "/asset-attachments"
4639
+ },
4640
+ [AttachmentModel.AssetType]: {
4641
+ name: "asset type",
4642
+ attachUrlPrefix: "/assets/types",
4643
+ deleteUrlPrefix: "/assets/types",
4644
+ fetchUrlPostfix: "/asset-type-attachments"
4645
+ },
4646
+ [AttachmentModel.Project]: {
4647
+ name: "project",
4648
+ attachUrlPrefix: "/projects",
4649
+ deleteUrlPrefix: "/projects",
4650
+ fetchUrlPostfix: "/attachments"
4651
+ },
4652
+ [AttachmentModel.Document]: {
4653
+ name: "document",
4654
+ attachUrlPrefix: "/documents",
4655
+ deleteUrlPrefix: "/documents",
4656
+ fetchUrlPostfix: "/document-attachments"
4657
+ }
4658
+ };
4659
+ class BaseAttachmentService extends BaseUploadService {
4611
4660
  async attachFiles(files, modelId, buildOfflineAttachment) {
4612
4661
  const { store } = this.client;
4613
4662
  const currentUser = store.getState().userReducer.currentUser;
@@ -5898,7 +5947,7 @@ var __publicField = (obj, key, value) => {
5898
5947
  }
5899
5948
  return { values: newValues, files };
5900
5949
  };
5901
- class UserFormSubmissionService extends BaseApiService {
5950
+ class UserFormSubmissionService extends BaseUploadService {
5902
5951
  constructor() {
5903
5952
  super(...arguments);
5904
5953
  // Attach files to submission, after uploading them to S3
@@ -5979,7 +6028,6 @@ var __publicField = (obj, key, value) => {
5979
6028
  // TODO: adapt the support bulk adding to any model type
5980
6029
  async bulkAdd(args, batchSize) {
5981
6030
  const { formRevision, commonFieldValues, fieldValuesByAsset } = args;
5982
- const allFilesRecord = {};
5983
6031
  const { values: fileSeperatedCommonFieldValues, files: commonFiles } = separateFilesFromValues(commonFieldValues);
5984
6032
  const submittedAt = (/* @__PURE__ */ new Date()).toISOString();
5985
6033
  const transactionId = uuid.v4();
@@ -6021,7 +6069,6 @@ var __publicField = (obj, key, value) => {
6021
6069
  file_type: file.type,
6022
6070
  size: file.size
6023
6071
  };
6024
- allFilesRecord[sha1] = filePayload;
6025
6072
  filePaylods.push(filePayload);
6026
6073
  }
6027
6074
  return {
@@ -6057,22 +6104,7 @@ var __publicField = (obj, key, value) => {
6057
6104
  blocks: blocks2
6058
6105
  });
6059
6106
  void promise.then(({ presigned_urls }) => {
6060
- for (const [sha1, presignedUrl] of Object.entries(presigned_urls)) {
6061
- const file = allFilesRecord[sha1];
6062
- if (!file)
6063
- continue;
6064
- void this.enqueueRequest({
6065
- url: presignedUrl.url,
6066
- description: "Upload file",
6067
- method: HttpMethod.POST,
6068
- isExternalUrl: true,
6069
- isAuthNeeded: false,
6070
- attachmentHash: sha1,
6071
- blockers: [`s3-${file.sha1}.${file.extension}`],
6072
- blocks: [sha1],
6073
- s3url: presignedUrl
6074
- });
6075
- }
6107
+ this.processPresignedUrls(presigned_urls);
6076
6108
  });
6077
6109
  prevBatchId = batchId;
6078
6110
  batchPromises.push(promise);
@@ -7132,6 +7164,178 @@ var __publicField = (obj, key, value) => {
7132
7164
  this.dispatch(setUsers(Object.values(usersRecord)));
7133
7165
  }
7134
7166
  }
7167
+ class GeoImageService extends BaseUploadService {
7168
+ async add(payload, file) {
7169
+ const { store } = this.client;
7170
+ const submittedAt = (/* @__PURE__ */ new Date()).toISOString();
7171
+ const currentUser = store.getState().userReducer.currentUser;
7172
+ const projectId = payload.project;
7173
+ const sha1 = await hashFile(file);
7174
+ const filePayload = {
7175
+ sha1,
7176
+ file_type: file.type,
7177
+ extension: file.name.split(".").pop(),
7178
+ size: file.size
7179
+ };
7180
+ const offlineMapImage = offline({
7181
+ ...payload,
7182
+ file_name: file.name,
7183
+ file_sha1: sha1,
7184
+ file: URL.createObjectURL(file),
7185
+ submitted_at: submittedAt,
7186
+ created_by: currentUser.id
7187
+ });
7188
+ store.dispatch(addGeoImage(offlineMapImage));
7189
+ const promise = this.enqueueRequest({
7190
+ description: "Add geo image",
7191
+ method: HttpMethod.POST,
7192
+ url: "/geo-images/",
7193
+ payload: {
7194
+ offline_id: offlineMapImage.offline_id,
7195
+ submitted_at: submittedAt,
7196
+ title: offlineMapImage.title,
7197
+ description: offlineMapImage.description,
7198
+ geo_marker: offlineMapImage.geo_marker,
7199
+ canvas_marker: offlineMapImage.canvas_marker,
7200
+ sha1: offlineMapImage.file_sha1,
7201
+ project: offlineMapImage.project,
7202
+ file_name: offlineMapImage.file_name,
7203
+ direction: offlineMapImage.direction,
7204
+ original_date: offlineMapImage.original_date,
7205
+ file: filePayload
7206
+ },
7207
+ blocks: [projectId.toString()],
7208
+ blockers: [projectId.toString()]
7209
+ });
7210
+ promise.then((result) => {
7211
+ this.processPresignedUrls(result.presigned_urls);
7212
+ store.dispatch(setGeoImage(result.geo_image));
7213
+ }).catch(() => {
7214
+ store.dispatch(deleteGeoImage(offlineMapImage.offline_id));
7215
+ });
7216
+ return [offlineMapImage, promise.then((result) => result.geo_image)];
7217
+ }
7218
+ async bulkAdd(payloadAndFiles, projectId) {
7219
+ const { store } = this.client;
7220
+ const submittedAt = (/* @__PURE__ */ new Date()).toISOString();
7221
+ const currentUser = store.getState().userReducer.currentUser;
7222
+ const offlineMapImages = [];
7223
+ const mapImageOfflineIds = [];
7224
+ const mapImagePayloads = [];
7225
+ const filePayloadRecord = {};
7226
+ for (const payloadAndFile of payloadAndFiles) {
7227
+ const { payload, file } = payloadAndFile;
7228
+ const sha1 = await hashFile(file);
7229
+ if (!(sha1 in filePayloadRecord)) {
7230
+ filePayloadRecord[sha1] = {
7231
+ sha1,
7232
+ file_type: file.type,
7233
+ extension: file.name.split(".").pop(),
7234
+ size: file.size
7235
+ };
7236
+ await this.client.files.addCache(file, sha1);
7237
+ }
7238
+ const offlineMapImage = offline({
7239
+ ...payload,
7240
+ file_name: file.name,
7241
+ file_sha1: sha1,
7242
+ file: URL.createObjectURL(file),
7243
+ submitted_at: submittedAt,
7244
+ created_by: currentUser.id,
7245
+ project: projectId
7246
+ });
7247
+ offlineMapImages.push(offlineMapImage);
7248
+ mapImageOfflineIds.push(offlineMapImage.offline_id);
7249
+ mapImagePayloads.push({
7250
+ offline_id: offlineMapImage.offline_id,
7251
+ sha1: offlineMapImage.file_sha1,
7252
+ file_name: offlineMapImage.file_name,
7253
+ title: offlineMapImage.title,
7254
+ description: offlineMapImage.description,
7255
+ geo_marker: offlineMapImage.geo_marker,
7256
+ canvas_marker: offlineMapImage.canvas_marker,
7257
+ direction: offlineMapImage.direction,
7258
+ original_date: offlineMapImage.original_date
7259
+ });
7260
+ }
7261
+ store.dispatch(addGeoImages(offlineMapImages));
7262
+ const promise = this.enqueueRequest({
7263
+ description: "Bulk add geo images",
7264
+ method: HttpMethod.POST,
7265
+ url: "/geo-images/bulk/",
7266
+ payload: {
7267
+ submitted_at: submittedAt,
7268
+ project: projectId,
7269
+ geo_images: mapImagePayloads,
7270
+ files: Object.values(filePayloadRecord)
7271
+ },
7272
+ blocks: [projectId.toString()],
7273
+ blockers: mapImageOfflineIds
7274
+ });
7275
+ promise.then((result) => {
7276
+ this.processPresignedUrls(result.presigned_urls);
7277
+ store.dispatch(setGeoImages(result.map_images));
7278
+ }).catch(() => {
7279
+ store.dispatch(deleteGeoImages(mapImageOfflineIds));
7280
+ });
7281
+ return [offlineMapImages, promise.then((result) => result.map_images)];
7282
+ }
7283
+ update(payload) {
7284
+ const { store } = this.client;
7285
+ const state = store.getState();
7286
+ const mapImageToUpdate = selectGeoImageById(payload.offline_id)(state);
7287
+ if (!mapImageToUpdate) {
7288
+ throw new Error(`Map image with offline_id ${payload.offline_id} does not exist in the store`);
7289
+ }
7290
+ const updatedGeoImage = { ...mapImageToUpdate, ...payload };
7291
+ store.dispatch(updateGeoImage(updatedGeoImage));
7292
+ const promise = this.enqueueRequest({
7293
+ description: "Update geo image",
7294
+ method: HttpMethod.PATCH,
7295
+ url: `/geo-images/${payload.offline_id}/`,
7296
+ payload,
7297
+ blocks: [payload.offline_id],
7298
+ blockers: [payload.offline_id]
7299
+ });
7300
+ promise.then((result) => {
7301
+ store.dispatch(setGeoImage(result));
7302
+ }).catch(() => {
7303
+ store.dispatch(setGeoImage(mapImageToUpdate));
7304
+ });
7305
+ return [updatedGeoImage, promise];
7306
+ }
7307
+ async delete(geoImageId) {
7308
+ const { store } = this.client;
7309
+ const state = store.getState();
7310
+ const mapImageToDelete = selectGeoImageById(geoImageId)(state);
7311
+ if (!mapImageToDelete) {
7312
+ throw new Error(`Map image with offline_id ${geoImageId} does not exist in the store`);
7313
+ }
7314
+ store.dispatch(deleteGeoImage(geoImageId));
7315
+ const promise = this.enqueueRequest({
7316
+ description: "Delete geo image",
7317
+ method: HttpMethod.DELETE,
7318
+ url: `/geo-image/${geoImageId}/`,
7319
+ blocks: [geoImageId],
7320
+ blockers: [geoImageId]
7321
+ });
7322
+ promise.catch(() => {
7323
+ store.dispatch(setGeoImage(mapImageToDelete));
7324
+ });
7325
+ return promise;
7326
+ }
7327
+ async refreshStore(projectId) {
7328
+ const { store } = this.client;
7329
+ const result = await this.enqueueRequest({
7330
+ description: "Get geo images",
7331
+ method: HttpMethod.GET,
7332
+ url: `/projects/${projectId}/geo-images/`,
7333
+ blocks: [projectId.toString()],
7334
+ blockers: []
7335
+ });
7336
+ store.dispatch(initializeGeoImages(result));
7337
+ }
7338
+ }
7135
7339
  exports2.APIError = APIError;
7136
7340
  exports2.AgentService = AgentService;
7137
7341
  exports2.AssetAttachmentService = AssetAttachmentService;
@@ -7155,6 +7359,7 @@ var __publicField = (obj, key, value) => {
7155
7359
  exports2.EmailVerificationService = EmailVerificationService;
7156
7360
  exports2.FileService = FileService;
7157
7361
  exports2.GREEN = GREEN;
7362
+ exports2.GeoImageService = GeoImageService;
7158
7363
  exports2.HttpMethod = HttpMethod;
7159
7364
  exports2.IssueAttachmentService = IssueAttachmentService;
7160
7365
  exports2.IssueCommentService = IssueCommentService;
@@ -7216,6 +7421,8 @@ var __publicField = (obj, key, value) => {
7216
7421
  exports2.addFormSubmissionAttachments = addFormSubmissionAttachments;
7217
7422
  exports2.addFormSubmissions = addFormSubmissions;
7218
7423
  exports2.addForms = addForms;
7424
+ exports2.addGeoImage = addGeoImage;
7425
+ exports2.addGeoImages = addGeoImages;
7219
7426
  exports2.addIssue = addIssue;
7220
7427
  exports2.addIssueAttachment = addIssueAttachment;
7221
7428
  exports2.addIssueAttachments = addIssueAttachments;
@@ -7291,6 +7498,8 @@ var __publicField = (obj, key, value) => {
7291
7498
  exports2.deleteFormSubmissionAttachment = deleteFormSubmissionAttachment;
7292
7499
  exports2.deleteFormSubmissionAttachments = deleteFormSubmissionAttachments;
7293
7500
  exports2.deleteFormSubmissions = deleteFormSubmissions;
7501
+ exports2.deleteGeoImage = deleteGeoImage;
7502
+ exports2.deleteGeoImages = deleteGeoImages;
7294
7503
  exports2.deleteIssue = deleteIssue;
7295
7504
  exports2.deleteIssueAttachment = deleteIssueAttachment;
7296
7505
  exports2.deleteIssueAttachments = deleteIssueAttachments;
@@ -7338,6 +7547,8 @@ var __publicField = (obj, key, value) => {
7338
7547
  exports2.fullAssetMarkerSize = fullAssetMarkerSize;
7339
7548
  exports2.generateBadgeColors = generateBadgeColors;
7340
7549
  exports2.genericMemo = genericMemo;
7550
+ exports2.geoImageReducer = geoImageReducer;
7551
+ exports2.geoImageSlice = geoImageSlice;
7341
7552
  exports2.getFileIdentifier = getFileIdentifier;
7342
7553
  exports2.getFileS3Key = getFileS3Key;
7343
7554
  exports2.getLocalDateString = getLocalDateString;
@@ -7360,6 +7571,7 @@ var __publicField = (obj, key, value) => {
7360
7571
  exports2.initializeFormRevisionAttachments = initializeFormRevisionAttachments;
7361
7572
  exports2.initializeFormRevisions = initializeFormRevisions;
7362
7573
  exports2.initializeFormSubmissionAttachments = initializeFormSubmissionAttachments;
7574
+ exports2.initializeGeoImages = initializeGeoImages;
7363
7575
  exports2.initializeIssueAttachments = initializeIssueAttachments;
7364
7576
  exports2.initializeIssueTypes = initializeIssueTypes;
7365
7577
  exports2.initializeIssueUpdates = initializeIssueUpdates;
@@ -7522,6 +7734,10 @@ var __publicField = (obj, key, value) => {
7522
7734
  exports2.selectFormsCount = selectFormsCount;
7523
7735
  exports2.selectFormsMapping = selectFormsMapping;
7524
7736
  exports2.selectGeneralFormCount = selectGeneralFormCount;
7737
+ exports2.selectGeoImageById = selectGeoImageById;
7738
+ exports2.selectGeoImageMapping = selectGeoImageMapping;
7739
+ exports2.selectGeoImages = selectGeoImages;
7740
+ exports2.selectGeoImagesOfProject = selectGeoImagesOfProject;
7525
7741
  exports2.selectHiddenAssetTypeIds = selectHiddenAssetTypeIds;
7526
7742
  exports2.selectHiddenCategoryCount = selectHiddenCategoryCount;
7527
7743
  exports2.selectIsFetchingInitialData = selectIsFetchingInitialData;
@@ -7633,6 +7849,8 @@ var __publicField = (obj, key, value) => {
7633
7849
  exports2.setFormSubmissionAttachments = setFormSubmissionAttachments;
7634
7850
  exports2.setFormSubmissions = setFormSubmissions;
7635
7851
  exports2.setForms = setForms;
7852
+ exports2.setGeoImage = setGeoImage;
7853
+ exports2.setGeoImages = setGeoImages;
7636
7854
  exports2.setIsFetchingInitialData = setIsFetchingInitialData;
7637
7855
  exports2.setIsImportingProjectFile = setIsImportingProjectFile;
7638
7856
  exports2.setIssueAttachment = setIssueAttachment;
@@ -7695,6 +7913,8 @@ var __publicField = (obj, key, value) => {
7695
7913
  exports2.updateFormSubmissionAttachment = updateFormSubmissionAttachment;
7696
7914
  exports2.updateFormSubmissionAttachments = updateFormSubmissionAttachments;
7697
7915
  exports2.updateFormSubmissions = updateFormSubmissions;
7916
+ exports2.updateGeoImage = updateGeoImage;
7917
+ exports2.updateGeoImages = updateGeoImages;
7698
7918
  exports2.updateIssue = updateIssue;
7699
7919
  exports2.updateIssueAttachment = updateIssueAttachment;
7700
7920
  exports2.updateIssueAttachments = updateIssueAttachments;