@overmap-ai/core 1.0.38-projects-licensing.3 → 1.0.38

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.
@@ -622,15 +622,15 @@ var __publicField = (obj, key, value) => {
622
622
  };
623
623
  const migrations = [initialVersioning, signOut, signOut, createOutboxState];
624
624
  const manifest = Object.fromEntries(migrations.map((migration2, i) => [i, wrapMigration(migration2)]));
625
- const initialState$m = {
625
+ const initialState$l = {
626
626
  accessToken: "",
627
627
  refreshToken: "",
628
628
  isLoggedIn: false
629
629
  };
630
630
  const authSlice = toolkit.createSlice({
631
631
  name: "auth",
632
- initialState: initialState$m,
633
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$m)),
632
+ initialState: initialState$l,
633
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$l)),
634
634
  reducers: {
635
635
  setTokens: (state, action) => {
636
636
  state.accessToken = action.payload.accessToken;
@@ -1334,7 +1334,7 @@ var __publicField = (obj, key, value) => {
1334
1334
  return getLocalDateString(date);
1335
1335
  return relative.format(days, "days");
1336
1336
  });
1337
- const initialState$l = {
1337
+ const initialState$k = {
1338
1338
  categories: {},
1339
1339
  usedCategoryColors: [],
1340
1340
  categoryVisibility: {
@@ -1344,8 +1344,8 @@ var __publicField = (obj, key, value) => {
1344
1344
  };
1345
1345
  const categorySlice = toolkit.createSlice({
1346
1346
  name: "categories",
1347
- initialState: initialState$l,
1348
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$l)),
1347
+ initialState: initialState$k,
1348
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$k)),
1349
1349
  reducers: {
1350
1350
  setCategories: (state, action) => {
1351
1351
  if (!Array.isArray(action.payload))
@@ -1478,13 +1478,13 @@ var __publicField = (obj, key, value) => {
1478
1478
  return hiddenCategoryCount;
1479
1479
  };
1480
1480
  const categoryReducer = categorySlice.reducer;
1481
- const initialState$k = {
1481
+ const initialState$j = {
1482
1482
  components: {}
1483
1483
  };
1484
1484
  const componentSlice = toolkit.createSlice({
1485
1485
  name: "components",
1486
- initialState: initialState$k,
1487
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$k)),
1486
+ initialState: initialState$j,
1487
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$j)),
1488
1488
  reducers: {
1489
1489
  addComponent: (state, action) => {
1490
1490
  state.components[action.payload.offline_id] = action.payload;
@@ -1596,13 +1596,13 @@ var __publicField = (obj, key, value) => {
1596
1596
  removeAllComponentsOfType
1597
1597
  } = componentSlice.actions;
1598
1598
  const componentReducer = componentSlice.reducer;
1599
- const initialState$j = {
1599
+ const initialState$i = {
1600
1600
  completionsByComponentId: {}
1601
1601
  };
1602
1602
  const componentStageCompletionSlice = toolkit.createSlice({
1603
1603
  name: "componentStageCompletions",
1604
- initialState: initialState$j,
1605
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$j)),
1604
+ initialState: initialState$i,
1605
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$i)),
1606
1606
  reducers: {
1607
1607
  addStageCompletion: (state, action) => {
1608
1608
  let stageToCompletionDateMapping = state.completionsByComponentId[action.payload.component];
@@ -1653,13 +1653,13 @@ var __publicField = (obj, key, value) => {
1653
1653
  return Object.keys(state.componentStageCompletionReducer.completionsByComponentId[component.offline_id] ?? {});
1654
1654
  };
1655
1655
  const componentStageCompletionReducer = componentStageCompletionSlice.reducer;
1656
- const initialState$i = {
1656
+ const initialState$h = {
1657
1657
  stages: {}
1658
1658
  };
1659
1659
  const componentStageSlice = toolkit.createSlice({
1660
1660
  name: "componentStages",
1661
- initialState: initialState$i,
1662
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$i)),
1661
+ initialState: initialState$h,
1662
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$h)),
1663
1663
  reducers: {
1664
1664
  addStages: (state, action) => {
1665
1665
  Object.assign(state.stages, toOfflineIdRecord(action.payload));
@@ -1719,14 +1719,14 @@ var __publicField = (obj, key, value) => {
1719
1719
  );
1720
1720
  const { addStages, updateStages, removeStages } = componentStageSlice.actions;
1721
1721
  const componentStageReducer = componentStageSlice.reducer;
1722
- const initialState$h = {
1722
+ const initialState$g = {
1723
1723
  componentTypes: {},
1724
1724
  hiddenComponentTypeIds: {}
1725
1725
  };
1726
1726
  const componentTypeSlice = toolkit.createSlice({
1727
1727
  name: "componentTypes",
1728
- initialState: initialState$h,
1729
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$h)),
1728
+ initialState: initialState$g,
1729
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$g)),
1730
1730
  reducers: {
1731
1731
  addComponentType: (state, action) => {
1732
1732
  state.componentTypes[action.payload.offline_id] = action.payload;
@@ -1785,13 +1785,13 @@ var __publicField = (obj, key, value) => {
1785
1785
  const selectHiddenComponentTypeIds = (state) => state.componentTypeReducer.hiddenComponentTypeIds;
1786
1786
  const { addComponentType, setComponentTypes, toggleComponentTypeVisibility, deleteComponentType } = componentTypeSlice.actions;
1787
1787
  const componentTypeReducer = componentTypeSlice.reducer;
1788
- const initialState$g = {
1788
+ const initialState$f = {
1789
1789
  workspaces: {},
1790
1790
  activeWorkspaceId: null
1791
1791
  };
1792
1792
  const workspaceSlice = toolkit.createSlice({
1793
1793
  name: "workspace",
1794
- initialState: initialState$g,
1794
+ initialState: initialState$f,
1795
1795
  // The `reducers` field lets us define reducers and generate associated actions
1796
1796
  reducers: {
1797
1797
  setWorkspaces: (state, action) => {
@@ -1848,20 +1848,21 @@ var __publicField = (obj, key, value) => {
1848
1848
  );
1849
1849
  const workspaceReducer = workspaceSlice.reducer;
1850
1850
  const maxRecentIssues = 10;
1851
- const initialState$f = {
1851
+ const initialState$e = {
1852
1852
  issues: {},
1853
1853
  attachments: {},
1854
1854
  comments: {},
1855
1855
  visibleStatuses: [IssueStatus.BACKLOG, IssueStatus.SELECTED],
1856
+ isFetchingInitialData: false,
1856
1857
  visibleUserIds: null,
1857
1858
  recentIssueIds: [],
1858
1859
  activeIssueId: null
1859
1860
  };
1860
1861
  const issueSlice = toolkit.createSlice({
1861
1862
  name: "issues",
1862
- initialState: initialState$f,
1863
+ initialState: initialState$e,
1863
1864
  extraReducers: (builder) => builder.addCase("RESET", (state) => {
1864
- Object.assign(state, initialState$f);
1865
+ Object.assign(state, initialState$e);
1865
1866
  }),
1866
1867
  reducers: {
1867
1868
  setIssues: (state, action) => {
@@ -1940,6 +1941,9 @@ var __publicField = (obj, key, value) => {
1940
1941
  setVisibleStatuses: (state, action) => {
1941
1942
  state.visibleStatuses = action.payload;
1942
1943
  },
1944
+ setIsFetchingInitialData: (state, action) => {
1945
+ state.isFetchingInitialData = action.payload;
1946
+ },
1943
1947
  setVisibleUserIds: (state, action) => {
1944
1948
  state.visibleUserIds = [...new Set(action.payload)];
1945
1949
  },
@@ -1998,6 +2002,7 @@ var __publicField = (obj, key, value) => {
1998
2002
  resetRecentIssues,
1999
2003
  setActiveIssueId,
2000
2004
  setAttachments,
2005
+ setIsFetchingInitialData,
2001
2006
  setIssueComments,
2002
2007
  setIssues,
2003
2008
  setVisibleStatuses,
@@ -2096,6 +2101,7 @@ var __publicField = (obj, key, value) => {
2096
2101
  return mapping[id];
2097
2102
  })
2098
2103
  );
2104
+ const selectIsFetchingInitialData = (state) => state.issueReducer.isFetchingInitialData;
2099
2105
  const selectAllAttachments = toolkit.createSelector([selectIssueAttachmentMapping], (mapping) => Object.values(mapping));
2100
2106
  const searchIssues = restructureCreateSelectorWithArgs(
2101
2107
  toolkit.createSelector(
@@ -2187,15 +2193,15 @@ var __publicField = (obj, key, value) => {
2187
2193
  }
2188
2194
  );
2189
2195
  const issueReducer = issueSlice.reducer;
2190
- const initialState$e = {
2196
+ const initialState$d = {
2191
2197
  s3Urls: {}
2192
2198
  };
2193
2199
  const msPerHour = 1e3 * 60 * 60;
2194
2200
  const msPerWeek = msPerHour * 24 * 7;
2195
2201
  const fileSlice = toolkit.createSlice({
2196
2202
  name: "file",
2197
- initialState: initialState$e,
2198
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$e)),
2203
+ initialState: initialState$d,
2204
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$d)),
2199
2205
  reducers: {
2200
2206
  setUploadUrl: (state, action) => {
2201
2207
  const { url, fields, sha1 } = action.payload;
@@ -2222,7 +2228,7 @@ var __publicField = (obj, key, value) => {
2222
2228
  return url;
2223
2229
  };
2224
2230
  const fileReducer = fileSlice.reducer;
2225
- const initialState$d = {
2231
+ const initialState$c = {
2226
2232
  // TODO: Change first MapStyle.SATELLITE to MaptStyle.None when project creation map is fixed
2227
2233
  mapStyle: MapStyle.SATELLITE,
2228
2234
  showTooltips: false,
@@ -2230,8 +2236,8 @@ var __publicField = (obj, key, value) => {
2230
2236
  };
2231
2237
  const mapSlice = toolkit.createSlice({
2232
2238
  name: "map",
2233
- initialState: initialState$d,
2234
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$d)),
2239
+ initialState: initialState$c,
2240
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$c)),
2235
2241
  reducers: {
2236
2242
  setMapStyle: (state, action) => {
2237
2243
  state.mapStyle = action.payload;
@@ -2273,23 +2279,7 @@ var __publicField = (obj, key, value) => {
2273
2279
  VerificationCodeType2[VerificationCodeType2["RESET_PASSWORD"] = 10] = "RESET_PASSWORD";
2274
2280
  return VerificationCodeType2;
2275
2281
  })(VerificationCodeType || {});
2276
- var PaddleCheckoutEvent = /* @__PURE__ */ ((PaddleCheckoutEvent2) => {
2277
- PaddleCheckoutEvent2["COMPLETED"] = "checkout.completed";
2278
- PaddleCheckoutEvent2["CLOSED"] = "checkout.closed";
2279
- return PaddleCheckoutEvent2;
2280
- })(PaddleCheckoutEvent || {});
2281
- var LicenseLevel = /* @__PURE__ */ ((LicenseLevel2) => {
2282
- LicenseLevel2[LicenseLevel2["PRO"] = 0] = "PRO";
2283
- return LicenseLevel2;
2284
- })(LicenseLevel || {});
2285
- var LicenseStatus = /* @__PURE__ */ ((LicenseStatus2) => {
2286
- LicenseStatus2[LicenseStatus2["ACTIVE"] = 0] = "ACTIVE";
2287
- LicenseStatus2[LicenseStatus2["PAUSED"] = 2] = "PAUSED";
2288
- LicenseStatus2[LicenseStatus2["CANCELLED"] = 4] = "CANCELLED";
2289
- LicenseStatus2[LicenseStatus2["INACTIVE"] = 6] = "INACTIVE";
2290
- return LicenseStatus2;
2291
- })(LicenseStatus || {});
2292
- const initialState$c = {
2282
+ const initialState$b = {
2293
2283
  users: {},
2294
2284
  currentUser: {
2295
2285
  id: 0,
@@ -2300,8 +2290,8 @@ var __publicField = (obj, key, value) => {
2300
2290
  };
2301
2291
  const userSlice = toolkit.createSlice({
2302
2292
  name: "users",
2303
- initialState: initialState$c,
2304
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$c)),
2293
+ initialState: initialState$b,
2294
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$b)),
2305
2295
  reducers: {
2306
2296
  setUsers: (state, action) => {
2307
2297
  const usersMapping = {};
@@ -2363,13 +2353,13 @@ var __publicField = (obj, key, value) => {
2363
2353
  const selectUsersAsMapping = (state) => state.userReducer.users;
2364
2354
  const selectFavouriteProjects = (state) => state.userReducer.currentUser.profile.favourite_project_ids;
2365
2355
  const userReducer = userSlice.reducer;
2366
- const initialState$b = {
2356
+ const initialState$a = {
2367
2357
  organizationAccesses: {}
2368
2358
  };
2369
2359
  const organizationAccessSlice = toolkit.createSlice({
2370
2360
  name: "organizationAccess",
2371
- initialState: initialState$b,
2372
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$b)),
2361
+ initialState: initialState$a,
2362
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$a)),
2373
2363
  reducers: {
2374
2364
  setOrganizationAccesses: (state, action) => {
2375
2365
  if (!Array.isArray(action.payload))
@@ -2432,64 +2422,151 @@ var __publicField = (obj, key, value) => {
2432
2422
  return organizationAccesses;
2433
2423
  };
2434
2424
  const organizationAccessReducer = organizationAccessSlice.reducer;
2435
- const initialState$a = {
2436
- licenses: {}
2425
+ const initialState$9 = {
2426
+ organizations: {},
2427
+ activeOrganizationId: null
2437
2428
  };
2438
- const licenseSlice = toolkit.createSlice({
2439
- name: "license",
2440
- initialState: initialState$a,
2441
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$a)),
2429
+ const organizationSlice = toolkit.createSlice({
2430
+ name: "organizations",
2431
+ initialState: initialState$9,
2432
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$9)),
2442
2433
  reducers: {
2443
- setLicenses: (state, action) => {
2444
- if (!Array.isArray(action.payload))
2445
- throw new Error("Expected an array of Licenses");
2446
- if (action.payload.filter(onlyUniqueOfflineIds).length !== action.payload.length) {
2447
- throw new Error("Tried to use setLicenses reducer with duplicate ID's");
2448
- }
2449
- const licenses = {};
2450
- for (const license of action.payload) {
2451
- licenses[license.offline_id] = license;
2434
+ setOrganizations: (state, action) => {
2435
+ for (const org of action.payload) {
2436
+ state.organizations[org.id] = org;
2452
2437
  }
2453
- state.licenses = licenses;
2454
2438
  },
2455
- addLicenses: (state, action) => {
2456
- for (const license of action.payload) {
2457
- state.licenses[license.offline_id] = license;
2439
+ updateActiveOrganization: (state, action) => {
2440
+ if (!state.activeOrganizationId) {
2441
+ throw new Error("Cannot update name of active organization. Active organization ID does not exist");
2458
2442
  }
2459
- },
2460
- updateLicense: (state, action) => {
2461
- if (!(action.payload.offline_id in state.licenses)) {
2462
- throw new Error("Tried to update license that does not exist.");
2443
+ if (state.activeOrganizationId !== action.payload.id) {
2444
+ throw new Error("Tried updating active organization with different organization");
2463
2445
  }
2464
- state.licenses[action.payload.offline_id] = action.payload;
2446
+ state.organizations[state.activeOrganizationId] = action.payload;
2447
+ },
2448
+ setActiveOrganizationId: (state, action) => {
2449
+ state.activeOrganizationId = action.payload;
2465
2450
  }
2466
2451
  }
2467
2452
  });
2468
- const { setLicenses, addLicenses, updateLicense } = licenseSlice.actions;
2469
- const selectLicenses = (state) => {
2470
- return state.licenseReducer.licenses;
2471
- };
2472
- const selectLicense = (licenseId) => (state) => state.licenseReducer.licenses[licenseId];
2473
- const selectActiveLicense = (state) => Object.values(state.licenseReducer.licenses).find(
2474
- (license) => license.project === state.projectReducer.activeProjectId
2475
- ) ?? null;
2476
- const selectLicenseForProject = (projectId) => (state) => Object.values(state.licenseReducer.licenses).find((license) => license.project === projectId) ?? null;
2477
- const selectActiveStatusLicenses = toolkit.createSelector(
2478
- [selectLicenses],
2479
- (licenses) => Object.values(licenses).filter((license) => license.is_active)
2453
+ const { setOrganizations, setActiveOrganizationId, updateActiveOrganization } = organizationSlice.actions;
2454
+ const selectActiveOrganizationId = (state) => {
2455
+ return state.organizationReducer.activeOrganizationId;
2456
+ };
2457
+ const selectOrganizations = (state) => {
2458
+ return Object.values(state.organizationReducer.organizations);
2459
+ };
2460
+ const selectOrganizationsWithAccess = toolkit.createSelector(
2461
+ [selectOrganizations],
2462
+ (organizations) => Object.values(organizations).filter((organization) => organization.has_access)
2463
+ );
2464
+ const selectActiveOrganization = (state) => {
2465
+ const id = selectActiveOrganizationId(state);
2466
+ if (!id) {
2467
+ return null;
2468
+ }
2469
+ const organization = state.organizationReducer.organizations[id];
2470
+ if (!organization) {
2471
+ return null;
2472
+ }
2473
+ return organization;
2474
+ };
2475
+ const selectOrganizationUsersIds = toolkit.createSelector(
2476
+ [selectOrganizationAccesses],
2477
+ (organizationAccesses) => Object.values(organizationAccesses).map((organizationAccess) => organizationAccess.user)
2480
2478
  );
2481
- const selectLicensesForProjectsMapping = toolkit.createSelector(
2482
- [selectLicenses],
2483
- (licenses) => Object.values(licenses).filter((license) => license.project).reduce((accum, license) => ({ ...accum, [license.project]: license }), {})
2479
+ const selectOrganizationUsersAsMapping = toolkit.createSelector(
2480
+ [selectOrganizationUsersIds, selectUsersAsMapping],
2481
+ (organizationUserIds, users) => organizationUserIds.reduce((accum, userId) => ({ ...accum, [userId]: users[userId] }), {})
2484
2482
  );
2485
- const licenseReducer = licenseSlice.reducer;
2486
- const initialState$9 = {
2483
+ const selectSortedOrganizationUsers = toolkit.createSelector(
2484
+ [selectCurrentUser, selectOrganizationUsersAsMapping, selectOrganizationAccessUserMapping],
2485
+ (currentUser, userMapping, organizationAccessMapping) => {
2486
+ return Object.values(userMapping).sort((userA, userB) => {
2487
+ if (userA.id === currentUser.id) {
2488
+ return -1;
2489
+ } else if (userB.id === currentUser.id) {
2490
+ return 1;
2491
+ }
2492
+ const organizationAccessesA = organizationAccessMapping[userA.id];
2493
+ const organizationAccessesB = organizationAccessMapping[userB.id];
2494
+ if ((organizationAccessesA == null ? void 0 : organizationAccessesA.access_level) === (organizationAccessesB == null ? void 0 : organizationAccessesB.access_level)) {
2495
+ return userA.username.localeCompare(userB.username);
2496
+ }
2497
+ if ((organizationAccessesA == null ? void 0 : organizationAccessesA.access_level) === OrganizationAccessLevel.ADMIN) {
2498
+ return -1;
2499
+ }
2500
+ return 1;
2501
+ });
2502
+ }
2503
+ );
2504
+ const selectOrganization = (id) => (state) => {
2505
+ return state.organizationReducer.organizations[id];
2506
+ };
2507
+ const organizationReducer = organizationSlice.reducer;
2508
+ const createOfflineAction = (request2, baseUrl) => {
2509
+ const requestWithUuid = request2.uuid ? request2 : { ...request2, uuid: uuid.v4() };
2510
+ return {
2511
+ payload: requestWithUuid,
2512
+ type: "",
2513
+ meta: {
2514
+ offline: {
2515
+ effect: {
2516
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
2517
+ request: requestWithUuid,
2518
+ BASE_URL: baseUrl
2519
+ }
2520
+ }
2521
+ }
2522
+ };
2523
+ };
2524
+ const initialState$8 = {
2525
+ deletedRequests: [],
2526
+ latestRetryTime: 0
2527
+ };
2528
+ const outboxSlice = toolkit.createSlice({
2529
+ name: "outbox",
2530
+ initialState: initialState$8,
2531
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$8)),
2532
+ reducers: {
2533
+ // enqueueActions is a reducer that does nothing but enqueue API request to the Redux Offline outbox
2534
+ // Whenever an issue is being created, a reducer addIssue() is responsible for adding it to the offline store
2535
+ // Then this reducer enqueueRequest() is responsible for adding the actual request data to the outbox
2536
+ enqueueRequest: {
2537
+ reducer: (state, _action) => {
2538
+ return state;
2539
+ },
2540
+ prepare: (payload) => {
2541
+ console.debug("Preparing to enqueue request", payload);
2542
+ const { BASE_URL, ...rest } = payload;
2543
+ return createOfflineAction(rest, BASE_URL);
2544
+ }
2545
+ },
2546
+ markForDeletion(state, action) {
2547
+ state.deletedRequests.push(action.payload);
2548
+ },
2549
+ markAsDeleted(state, action) {
2550
+ const index2 = state.deletedRequests.indexOf(action.payload);
2551
+ if (index2 !== -1)
2552
+ state.deletedRequests.splice(index2, 1);
2553
+ },
2554
+ _setLatestRetryTime: (state, action) => {
2555
+ state.latestRetryTime = action.payload;
2556
+ }
2557
+ }
2558
+ });
2559
+ const selectDeletedRequests = (state) => state.outboxReducer.deletedRequests;
2560
+ const selectLatestRetryTime = (state) => state.outboxReducer.latestRetryTime;
2561
+ const { enqueueRequest, markForDeletion, markAsDeleted, _setLatestRetryTime } = outboxSlice.actions;
2562
+ const outboxReducer = outboxSlice.reducer;
2563
+ const initialState$7 = {
2487
2564
  projectAccesses: {}
2488
2565
  };
2489
2566
  const projectAccessSlice = toolkit.createSlice({
2490
2567
  name: "projectAccess",
2491
- initialState: initialState$9,
2492
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$9)),
2568
+ initialState: initialState$7,
2569
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$7)),
2493
2570
  reducers: {
2494
2571
  setProjectAccesses: (state, action) => {
2495
2572
  if (!Array.isArray(action.payload))
@@ -2557,7 +2634,7 @@ var __publicField = (obj, key, value) => {
2557
2634
  return projectAccesses;
2558
2635
  };
2559
2636
  const projectAccessReducer = projectAccessSlice.reducer;
2560
- const initialState$8 = {
2637
+ const initialState$6 = {
2561
2638
  projects: {},
2562
2639
  activeProjectId: null,
2563
2640
  recentProjectIds: [],
@@ -2566,7 +2643,7 @@ var __publicField = (obj, key, value) => {
2566
2643
  };
2567
2644
  const projectSlice = toolkit.createSlice({
2568
2645
  name: "projects",
2569
- initialState: initialState$8,
2646
+ initialState: initialState$6,
2570
2647
  reducers: {
2571
2648
  setProjects: (state, action) => {
2572
2649
  const projectsMap = {};
@@ -2612,27 +2689,6 @@ var __publicField = (obj, key, value) => {
2612
2689
  } else {
2613
2690
  throw new Error("Accept project invite: user is not in this project");
2614
2691
  }
2615
- },
2616
- addActiveProjectIssuesCount: (state, action) => {
2617
- if (!state.activeProjectId || !(state.activeProjectId in state.projects)) {
2618
- throw new Error("Update issues count: no active project");
2619
- }
2620
- if (!state.projects[state.activeProjectId].issues_count) {
2621
- state.projects[state.activeProjectId].issues_count = action.payload;
2622
- } else {
2623
- state.projects[state.activeProjectId].issues_count += action.payload;
2624
- }
2625
- },
2626
- addActiveProjectFormSubmissionsCount: (state, action) => {
2627
- if (state.activeProjectId && state.activeProjectId in state.projects) {
2628
- if (!state.projects[state.activeProjectId].form_submissions_count) {
2629
- state.projects[state.activeProjectId].form_submissions_count = action.payload;
2630
- } else {
2631
- state.projects[state.activeProjectId].form_submissions_count += action.payload;
2632
- }
2633
- } else {
2634
- throw new Error("Update form submissions count: no active project");
2635
- }
2636
2692
  }
2637
2693
  }
2638
2694
  });
@@ -2643,9 +2699,7 @@ var __publicField = (obj, key, value) => {
2643
2699
  setActiveProjectId,
2644
2700
  setCreateProjectType,
2645
2701
  deleteProject,
2646
- acceptProjectInvite,
2647
- addActiveProjectIssuesCount,
2648
- addActiveProjectFormSubmissionsCount
2702
+ acceptProjectInvite
2649
2703
  } = projectSlice.actions;
2650
2704
  const selectProjects = (state) => state.projectReducer.projects;
2651
2705
  const selectActiveProjectId = (state) => state.projectReducer.activeProjectId;
@@ -2709,171 +2763,6 @@ var __publicField = (obj, key, value) => {
2709
2763
  });
2710
2764
  }
2711
2765
  );
2712
- const initialState$7 = {
2713
- organizations: {},
2714
- activeOrganizationId: null
2715
- };
2716
- const organizationSlice = toolkit.createSlice({
2717
- name: "organizations",
2718
- initialState: initialState$7,
2719
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$7)),
2720
- reducers: {
2721
- setOrganizations: (state, action) => {
2722
- for (const org of action.payload) {
2723
- state.organizations[org.id] = org;
2724
- }
2725
- },
2726
- updateActiveOrganization: (state, action) => {
2727
- if (!state.activeOrganizationId) {
2728
- throw new Error("Cannot update name of active organization. Active organization ID does not exist");
2729
- }
2730
- if (state.activeOrganizationId !== action.payload.id) {
2731
- throw new Error("Tried updating active organization with different organization");
2732
- }
2733
- state.organizations[state.activeOrganizationId] = action.payload;
2734
- },
2735
- setActiveOrganizationId: (state, action) => {
2736
- state.activeOrganizationId = action.payload;
2737
- }
2738
- }
2739
- });
2740
- const { setOrganizations, setActiveOrganizationId, updateActiveOrganization } = organizationSlice.actions;
2741
- const selectActiveOrganizationId = (state) => {
2742
- return state.organizationReducer.activeOrganizationId;
2743
- };
2744
- const selectOrganizations = (state) => {
2745
- return Object.values(state.organizationReducer.organizations);
2746
- };
2747
- const selectOrganizationsMapping = (state) => {
2748
- return state.organizationReducer.organizations;
2749
- };
2750
- const selectOrganizationsWithAccess = toolkit.createSelector(
2751
- [selectOrganizations],
2752
- (organizations) => Object.values(organizations).filter((organization) => organization.has_access)
2753
- );
2754
- const selectActiveOrganization = (state) => {
2755
- const id = selectActiveOrganizationId(state);
2756
- if (!id) {
2757
- return null;
2758
- }
2759
- const organization = state.organizationReducer.organizations[id];
2760
- if (!organization) {
2761
- return null;
2762
- }
2763
- return organization;
2764
- };
2765
- const selectOrganizationUsersIds = toolkit.createSelector(
2766
- [selectOrganizationAccesses],
2767
- (organizationAccesses) => Object.values(organizationAccesses).map((organizationAccess) => organizationAccess.user)
2768
- );
2769
- const selectActiveOrganizationProjects = toolkit.createSelector(
2770
- [selectProjects, selectActiveOrganizationId],
2771
- (projects, activeOrganizationId) => activeOrganizationId ? Object.values(projects).filter((project) => project.owner_organization === activeOrganizationId) : []
2772
- );
2773
- const selectActiveOrganizationLicenses = toolkit.createSelector(
2774
- [selectActiveOrganizationId, selectLicenses],
2775
- (activeOrganizationId, licenses) => !activeOrganizationId ? [] : Object.values(licenses).filter((license) => license.organization_owner === activeOrganizationId)
2776
- );
2777
- const selectSortedOrganizationLicenses = toolkit.createSelector(
2778
- [selectActiveOrganizationLicenses, selectProjects],
2779
- (licences, projects) => licences.sort((licenseA, licenseB) => {
2780
- if (!licenseA.project) {
2781
- return 1;
2782
- }
2783
- if (!licenseB.project) {
2784
- return -1;
2785
- }
2786
- return projects[licenseA.project].name.toLowerCase().localeCompare(
2787
- projects[licenseB.project].name.toLowerCase(),
2788
- void 0,
2789
- { numeric: true }
2790
- );
2791
- })
2792
- );
2793
- const selectOrganizationUsersAsMapping = toolkit.createSelector(
2794
- [selectOrganizationUsersIds, selectUsersAsMapping],
2795
- (organizationUserIds, users) => organizationUserIds.reduce((accum, userId) => ({ ...accum, [userId]: users[userId] }), {})
2796
- );
2797
- const selectSortedOrganizationUsers = toolkit.createSelector(
2798
- [selectCurrentUser, selectOrganizationUsersAsMapping, selectOrganizationAccessUserMapping],
2799
- (currentUser, userMapping, organizationAccessMapping) => {
2800
- return Object.values(userMapping).sort((userA, userB) => {
2801
- if (userA.id === currentUser.id) {
2802
- return -1;
2803
- } else if (userB.id === currentUser.id) {
2804
- return 1;
2805
- }
2806
- const organizationAccessesA = organizationAccessMapping[userA.id];
2807
- const organizationAccessesB = organizationAccessMapping[userB.id];
2808
- if ((organizationAccessesA == null ? void 0 : organizationAccessesA.access_level) === (organizationAccessesB == null ? void 0 : organizationAccessesB.access_level)) {
2809
- return userA.username.localeCompare(userB.username);
2810
- }
2811
- if ((organizationAccessesA == null ? void 0 : organizationAccessesA.access_level) === OrganizationAccessLevel.ADMIN) {
2812
- return -1;
2813
- }
2814
- return 1;
2815
- });
2816
- }
2817
- );
2818
- const selectOrganization = (id) => (state) => {
2819
- return state.organizationReducer.organizations[id];
2820
- };
2821
- const organizationReducer = organizationSlice.reducer;
2822
- const createOfflineAction = (request2, baseUrl) => {
2823
- const requestWithUuid = request2.uuid ? request2 : { ...request2, uuid: uuid.v4() };
2824
- return {
2825
- payload: requestWithUuid,
2826
- type: "",
2827
- meta: {
2828
- offline: {
2829
- effect: {
2830
- timestamp: (/* @__PURE__ */ new Date()).toISOString(),
2831
- request: requestWithUuid,
2832
- BASE_URL: baseUrl
2833
- }
2834
- }
2835
- }
2836
- };
2837
- };
2838
- const initialState$6 = {
2839
- deletedRequests: [],
2840
- latestRetryTime: 0
2841
- };
2842
- const outboxSlice = toolkit.createSlice({
2843
- name: "outbox",
2844
- initialState: initialState$6,
2845
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$6)),
2846
- reducers: {
2847
- // enqueueActions is a reducer that does nothing but enqueue API request to the Redux Offline outbox
2848
- // Whenever an issue is being created, a reducer addIssue() is responsible for adding it to the offline store
2849
- // Then this reducer enqueueRequest() is responsible for adding the actual request data to the outbox
2850
- enqueueRequest: {
2851
- reducer: (state, _action) => {
2852
- return state;
2853
- },
2854
- prepare: (payload) => {
2855
- console.debug("Preparing to enqueue request", payload);
2856
- const { BASE_URL, ...rest } = payload;
2857
- return createOfflineAction(rest, BASE_URL);
2858
- }
2859
- },
2860
- markForDeletion(state, action) {
2861
- state.deletedRequests.push(action.payload);
2862
- },
2863
- markAsDeleted(state, action) {
2864
- const index2 = state.deletedRequests.indexOf(action.payload);
2865
- if (index2 !== -1)
2866
- state.deletedRequests.splice(index2, 1);
2867
- },
2868
- _setLatestRetryTime: (state, action) => {
2869
- state.latestRetryTime = action.payload;
2870
- }
2871
- }
2872
- });
2873
- const selectDeletedRequests = (state) => state.outboxReducer.deletedRequests;
2874
- const selectLatestRetryTime = (state) => state.outboxReducer.latestRetryTime;
2875
- const { enqueueRequest, markForDeletion, markAsDeleted, _setLatestRetryTime } = outboxSlice.actions;
2876
- const outboxReducer = outboxSlice.reducer;
2877
2766
  const initialState$5 = {
2878
2767
  projectFiles: {},
2879
2768
  activeProjectFileId: null,
@@ -3010,9 +2899,7 @@ var __publicField = (obj, key, value) => {
3010
2899
  Components: false,
3011
2900
  Experimental: false
3012
2901
  },
3013
- appearance: "dark",
3014
- isFetchingInitialData: false,
3015
- isLoading: false
2902
+ appearance: "dark"
3016
2903
  };
3017
2904
  const settingSlice = toolkit.createSlice({
3018
2905
  name: "settings",
@@ -3036,12 +2923,6 @@ var __publicField = (obj, key, value) => {
3036
2923
  },
3037
2924
  setAppearance: (state, action) => {
3038
2925
  state.appearance = action.payload;
3039
- },
3040
- setIsFetchingInitialData: (state, action) => {
3041
- state.isFetchingInitialData = action.payload;
3042
- },
3043
- setIsLoading: (state, action) => {
3044
- state.isLoading = action.payload;
3045
2926
  }
3046
2927
  }
3047
2928
  });
@@ -3050,9 +2931,7 @@ var __publicField = (obj, key, value) => {
3050
2931
  setEnablePlacementMode,
3051
2932
  setSectionExpanded,
3052
2933
  setEnableClustering,
3053
- setAppearance,
3054
- setIsFetchingInitialData,
3055
- setIsLoading
2934
+ setAppearance
3056
2935
  } = settingSlice.actions;
3057
2936
  const selectEnablePlacementMode = (state) => state.settingReducer.placementMode;
3058
2937
  const selectEnableDuplicateIssues = (state) => state.settingReducer.useIssueTemplate;
@@ -3061,8 +2940,6 @@ var __publicField = (obj, key, value) => {
3061
2940
  const selectEnableClustering = (state) => state.settingReducer.enableClustering;
3062
2941
  const selectAppearance = (state) => state.settingReducer.appearance;
3063
2942
  const settingReducer = settingSlice.reducer;
3064
- const selectIsFetchingInitialData = (state) => state.settingReducer.isFetchingInitialData;
3065
- const selectIsLoading = (state) => state.settingReducer.isLoading;
3066
2943
  const LATEST_REVISION_CACHE = {};
3067
2944
  function considerCachingRevision(revision, formId2, preferPending = false) {
3068
2945
  var _a2;
@@ -3464,8 +3341,7 @@ var __publicField = (obj, key, value) => {
3464
3341
  userFormReducer,
3465
3342
  userReducer,
3466
3343
  workspaceReducer,
3467
- emailDomainsReducer,
3468
- licenseReducer
3344
+ emailDomainsReducer
3469
3345
  };
3470
3346
  const overmapReducer = toolkit.combineReducers(overmapReducers);
3471
3347
  const resetStore = "RESET";
@@ -4919,7 +4795,6 @@ var __publicField = (obj, key, value) => {
4919
4795
  });
4920
4796
  store.dispatch(addIssue(issuePayload));
4921
4797
  store.dispatch(addToRecentIssues(issuePayload.offline_id));
4922
- store.dispatch(addActiveProjectIssuesCount(1));
4923
4798
  const promise = this.enqueueRequest({
4924
4799
  description: "Create issue",
4925
4800
  method: HttpMethod.POST,
@@ -4929,7 +4804,6 @@ var __publicField = (obj, key, value) => {
4929
4804
  },
4930
4805
  payload: issuePayload,
4931
4806
  blockers: [
4932
- "add-issue",
4933
4807
  ...issuePayload.index_workspace ? [issuePayload.index_workspace] : [],
4934
4808
  ...issuePayload.visible_in_workspaces
4935
4809
  ],
@@ -4947,7 +4821,6 @@ var __publicField = (obj, key, value) => {
4947
4821
  });
4948
4822
  }
4949
4823
  store.dispatch(removeIssue(issuePayload.offline_id));
4950
- store.dispatch(addActiveProjectIssuesCount(-1));
4951
4824
  throw error2;
4952
4825
  });
4953
4826
  return [issuePayload, promise];
@@ -4986,18 +4859,16 @@ var __publicField = (obj, key, value) => {
4986
4859
  return [fullIssue, promise];
4987
4860
  }
4988
4861
  async remove(id) {
4989
- const { store } = this.client;
4990
- const state = store.getState();
4862
+ const state = this.client.store.getState();
4991
4863
  const backup = state.issueReducer.issues[id];
4992
4864
  if (!backup) {
4993
4865
  throw new Error(`No issue with id ${id} found in the store`);
4994
4866
  }
4995
4867
  const attachments = Object.values(state.issueReducer.attachments).filter((a) => a.issue_id === id);
4996
4868
  const attachmentsOfIssue = selectPhotoAttachmentsOfIssue(id)(state);
4997
- store.dispatch(removeIssue(id));
4998
- store.dispatch(addActiveProjectIssuesCount(-1));
4869
+ this.client.store.dispatch(removeIssue(id));
4999
4870
  if (attachmentsOfIssue) {
5000
- store.dispatch(removeAttachmentsOfIssue(id));
4871
+ this.client.store.dispatch(removeAttachmentsOfIssue(id));
5001
4872
  }
5002
4873
  try {
5003
4874
  return await this.enqueueRequest({
@@ -5008,9 +4879,8 @@ var __publicField = (obj, key, value) => {
5008
4879
  blocks: []
5009
4880
  });
5010
4881
  } catch (e) {
5011
- store.dispatch(addIssue(backup));
5012
- store.dispatch(addAttachments(attachments));
5013
- store.dispatch(addActiveProjectIssuesCount(1));
4882
+ this.client.store.dispatch(addIssue(backup));
4883
+ this.client.store.dispatch(addAttachments(attachments));
5014
4884
  throw e;
5015
4885
  }
5016
4886
  }
@@ -5086,9 +4956,7 @@ var __publicField = (obj, key, value) => {
5086
4956
  owner_organization: projectData.organization_owner,
5087
4957
  owner_user: projectData.user_owner,
5088
4958
  bounds: projectData.bounds,
5089
- invited: projectData.invited || false,
5090
- issues_count: projectData.issues_count,
5091
- form_submissions_count: projectData.form_submissions_count
4959
+ invited: projectData.invited || false
5092
4960
  });
5093
4961
  if (currentProjectId === projectData.id && !projectData.invited) {
5094
4962
  isProjectIdValid = true;
@@ -5106,7 +4974,6 @@ var __publicField = (obj, key, value) => {
5106
4974
  }
5107
4975
  store.dispatch(setCurrentUser(data.user));
5108
4976
  store.dispatch(addUsers(data.project_owners));
5109
- store.dispatch(setLicenses(data.licenses));
5110
4977
  const organizationsData = data.organizations;
5111
4978
  store.dispatch(setOrganizations(organizationsData));
5112
4979
  const validProjects = projects.filter((project) => !project.invited);
@@ -5220,7 +5087,7 @@ var __publicField = (obj, key, value) => {
5220
5087
  method: HttpMethod.PATCH,
5221
5088
  url: `/access/${projectAccess.offline_id}/`,
5222
5089
  payload: projectAccess,
5223
- blockers: [projectAccess.offline_id, "change-access-level"],
5090
+ blockers: [projectAccess.offline_id],
5224
5091
  blocks: [projectAccess.offline_id]
5225
5092
  });
5226
5093
  }
@@ -5419,7 +5286,6 @@ var __publicField = (obj, key, value) => {
5419
5286
  if (!project) {
5420
5287
  throw new Error("Expected project to exist");
5421
5288
  }
5422
- const license = selectLicenseForProject(project.id);
5423
5289
  const activeProjectId = state.projectReducer.activeProjectId;
5424
5290
  if (activeProjectId === projectId) {
5425
5291
  store.dispatch({ type: "project/setActiveProjectId", payload: null });
@@ -5430,9 +5296,6 @@ var __publicField = (obj, key, value) => {
5430
5296
  store.dispatch(removeProjectAccessesOfProject(project.id));
5431
5297
  store.dispatch({ type: "rehydrated/setRehydrated", payload: false });
5432
5298
  store.dispatch(deleteProject(project));
5433
- if (license) {
5434
- store.dispatch(updateLicense({ ...license, project: null }));
5435
- }
5436
5299
  try {
5437
5300
  await this.enqueueRequest({
5438
5301
  description: "Delete project",
@@ -5448,9 +5311,6 @@ var __publicField = (obj, key, value) => {
5448
5311
  store.dispatch(addOrReplaceProjectFiles(filesToDelete));
5449
5312
  store.dispatch(setActiveProjectId(activeProjectId));
5450
5313
  store.dispatch({ type: "rehydrated/setRehydrated", payload: true });
5451
- if (license) {
5452
- store.dispatch(updateLicense({ ...license, project: project.id }));
5453
- }
5454
5314
  throw e;
5455
5315
  }
5456
5316
  }
@@ -5782,7 +5642,7 @@ var __publicField = (obj, key, value) => {
5782
5642
  method: HttpMethod.POST,
5783
5643
  url: `/forms/revisions/${payload.form_revision}/respond/`,
5784
5644
  payload: { ...payloadWithoutFiles, project: activeProjectId },
5785
- blockers: [payload.issue, payload.component, "add-form-entry"].filter((x) => x !== void 0),
5645
+ blockers: [payload.issue, payload.component].filter((x) => x !== void 0),
5786
5646
  blocks: [payload.offline_id]
5787
5647
  });
5788
5648
  const attachFilesPromises = Object.entries(files).map(async ([key, fileArray]) => {
@@ -5827,11 +5687,9 @@ var __publicField = (obj, key, value) => {
5827
5687
  store.dispatch(addUserFormSubmission(offlineResultWithoutFiles));
5828
5688
  void promise.then((result) => {
5829
5689
  store.dispatch(addUserFormSubmission(result));
5830
- store.dispatch(addActiveProjectFormSubmissionsCount(1));
5831
5690
  return result;
5832
5691
  }).catch(() => {
5833
5692
  store.dispatch(deleteUserFormSubmission(payload.offline_id));
5834
- store.dispatch(addActiveProjectFormSubmissionsCount(-1));
5835
5693
  });
5836
5694
  const settledPromise = Promise.all([promise, ...attachFilesPromises]).then(() => promise);
5837
5695
  return [fullOfflineResult, settledPromise];
@@ -5841,7 +5699,6 @@ var __publicField = (obj, key, value) => {
5841
5699
  const state = store.getState();
5842
5700
  const submission = state.userFormReducer.submissions[submissionId];
5843
5701
  store.dispatch(deleteUserFormSubmission(submissionId));
5844
- store.dispatch(addActiveProjectFormSubmissionsCount(-1));
5845
5702
  try {
5846
5703
  return await this.enqueueRequest({
5847
5704
  description: "Delete user form submissions",
@@ -5853,7 +5710,6 @@ var __publicField = (obj, key, value) => {
5853
5710
  } catch (e) {
5854
5711
  if (submission) {
5855
5712
  store.dispatch(addUserFormSubmission(submission));
5856
- store.dispatch(addActiveProjectFormSubmissionsCount(1));
5857
5713
  }
5858
5714
  throw e;
5859
5715
  }
@@ -5889,7 +5745,7 @@ var __publicField = (obj, key, value) => {
5889
5745
  method: HttpMethod.POST,
5890
5746
  url: `/projects/${store.getState().projectReducer.activeProjectId}/workspaces/`,
5891
5747
  payload: offlineWorkspace,
5892
- blockers: ["add-workspace"],
5748
+ blockers: [],
5893
5749
  blocks: [offlineWorkspace.offline_id]
5894
5750
  });
5895
5751
  void promise.then((result) => {
@@ -6266,12 +6122,10 @@ var __publicField = (obj, key, value) => {
6266
6122
  const organizationAccesses = data.organization_accesses;
6267
6123
  const emailDomains = data.email_domains;
6268
6124
  const users = data.users;
6269
- const licenses = data.licenses;
6270
6125
  store.dispatch(addUsers(users));
6271
6126
  store.dispatch(setActiveOrganizationId(activeOrganization.id));
6272
6127
  store.dispatch(setOrganizationAccesses(organizationAccesses));
6273
6128
  store.dispatch(setEmailDomains(emailDomains));
6274
- store.dispatch(addLicenses(licenses));
6275
6129
  if (showLoading) {
6276
6130
  store.dispatch(setIsFetchingInitialData(false));
6277
6131
  }
@@ -6312,103 +6166,6 @@ var __publicField = (obj, key, value) => {
6312
6166
  });
6313
6167
  }
6314
6168
  }
6315
- class LicenseService extends BaseApiService {
6316
- async getLicensesForOrganization(organizationId, showLoading = false) {
6317
- if (showLoading) {
6318
- this.client.store.dispatch(setIsFetchingInitialData(true));
6319
- }
6320
- return this.enqueueRequest({
6321
- description: "Get licenses",
6322
- method: HttpMethod.GET,
6323
- url: `/organizations/${organizationId}/licenses/`,
6324
- isAuthNeeded: true,
6325
- blockers: [organizationId.toString()],
6326
- blocks: ["add-issue", "add-form-entry", "change-access-level", "add-workspace"]
6327
- }).then((result) => {
6328
- if (showLoading) {
6329
- this.client.store.dispatch(setIsFetchingInitialData(false));
6330
- }
6331
- return result;
6332
- });
6333
- }
6334
- async pauseLicense(license) {
6335
- return this.enqueueRequest({
6336
- description: "Pause license",
6337
- method: HttpMethod.DELETE,
6338
- url: `/billing/${license.offline_id}/suspend/`,
6339
- isAuthNeeded: true,
6340
- blockers: [
6341
- license.organization_owner ? license.organization_owner.toString() : license.user_owner ? license.user_owner.toString() : ""
6342
- ],
6343
- blocks: []
6344
- }).then((result) => {
6345
- this.client.store.dispatch(updateLicense(result));
6346
- return result;
6347
- });
6348
- }
6349
- async resumeLicense(license) {
6350
- return this.enqueueRequest({
6351
- description: "Resume license",
6352
- method: HttpMethod.PATCH,
6353
- url: `/billing/${license.offline_id}/suspend/`,
6354
- isAuthNeeded: true,
6355
- blockers: [
6356
- license.organization_owner ? license.organization_owner.toString() : license.user_owner ? license.user_owner.toString() : ""
6357
- ],
6358
- blocks: []
6359
- }).then((result) => {
6360
- this.client.store.dispatch(updateLicense(result));
6361
- return result;
6362
- });
6363
- }
6364
- async cancelLicense(license) {
6365
- return this.enqueueRequest({
6366
- description: "Cancel license",
6367
- method: HttpMethod.DELETE,
6368
- url: `/billing/${license.offline_id}/`,
6369
- isAuthNeeded: true,
6370
- blockers: [
6371
- license.organization_owner ? license.organization_owner.toString() : license.user_owner ? license.user_owner.toString() : ""
6372
- ],
6373
- blocks: []
6374
- }).then((result) => {
6375
- this.client.store.dispatch(updateLicense(result));
6376
- return result;
6377
- });
6378
- }
6379
- async attachLicenseToProject(license, project) {
6380
- return this.enqueueRequest({
6381
- description: "Attach license",
6382
- method: HttpMethod.PATCH,
6383
- url: `/billing/${license.offline_id}/project/`,
6384
- isAuthNeeded: true,
6385
- payload: { project: project.id },
6386
- blockers: [
6387
- license.organization_owner ? license.organization_owner.toString() : license.user_owner ? license.user_owner.toString() : "",
6388
- project.id ? project.id.toString() : ""
6389
- ],
6390
- blocks: ["add-issue", "add-form-entry", "change-access-level", "add-workspace"]
6391
- }).then((result) => {
6392
- this.client.store.dispatch(updateLicense(result));
6393
- return result;
6394
- });
6395
- }
6396
- async detachLicenseFromProject(license) {
6397
- return this.enqueueRequest({
6398
- description: "Detach license",
6399
- method: HttpMethod.DELETE,
6400
- url: `/billing/${license.offline_id}/project/`,
6401
- isAuthNeeded: true,
6402
- blockers: [
6403
- license.organization_owner ? license.organization_owner.toString() : license.user_owner ? license.user_owner.toString() : ""
6404
- ],
6405
- blocks: ["add-issue", "add-form-entry", "change-access-level", "add-workspace"]
6406
- }).then((result) => {
6407
- this.client.store.dispatch(updateLicense(result));
6408
- return result;
6409
- });
6410
- }
6411
- }
6412
6169
  class OvermapSDK {
6413
6170
  constructor(apiUrl, store) {
6414
6171
  __publicField(this, "API_URL");
@@ -6434,7 +6191,6 @@ var __publicField = (obj, key, value) => {
6434
6191
  __publicField(this, "projectFiles", new ProjectFileService(this));
6435
6192
  __publicField(this, "emailVerification", new EmailVerificationService(this));
6436
6193
  __publicField(this, "emailDomains", new EmailDomainsService(this));
6437
- __publicField(this, "licenses", new LicenseService(this));
6438
6194
  this.API_URL = apiUrl;
6439
6195
  this.store = store;
6440
6196
  }
@@ -11999,9 +11755,6 @@ var __publicField = (obj, key, value) => {
11999
11755
  exports2.IssuePriority = IssuePriority;
12000
11756
  exports2.IssueService = IssueService;
12001
11757
  exports2.IssueStatus = IssueStatus;
12002
- exports2.LicenseLevel = LicenseLevel;
12003
- exports2.LicenseService = LicenseService;
12004
- exports2.LicenseStatus = LicenseStatus;
12005
11758
  exports2.MainService = MainService;
12006
11759
  exports2.MapStyle = MapStyle;
12007
11760
  exports2.MultiSelectField = MultiSelectField;
@@ -12018,7 +11771,6 @@ var __publicField = (obj, key, value) => {
12018
11771
  exports2.OvermapContext = OvermapContext;
12019
11772
  exports2.OvermapProvider = OvermapProvider;
12020
11773
  exports2.OvermapSDK = OvermapSDK;
12021
- exports2.PaddleCheckoutEvent = PaddleCheckoutEvent;
12022
11774
  exports2.PatchField = PatchField;
12023
11775
  exports2.PatchFormProvider = PatchFormProvider;
12024
11776
  exports2.ProjectAccessLevel = ProjectAccessLevel;
@@ -12041,8 +11793,6 @@ var __publicField = (obj, key, value) => {
12041
11793
  exports2.YELLOW = YELLOW;
12042
11794
  exports2._setLatestRetryTime = _setLatestRetryTime;
12043
11795
  exports2.acceptProjectInvite = acceptProjectInvite;
12044
- exports2.addActiveProjectFormSubmissionsCount = addActiveProjectFormSubmissionsCount;
12045
- exports2.addActiveProjectIssuesCount = addActiveProjectIssuesCount;
12046
11796
  exports2.addAttachment = addAttachment;
12047
11797
  exports2.addAttachments = addAttachments;
12048
11798
  exports2.addCategory = addCategory;
@@ -12052,7 +11802,6 @@ var __publicField = (obj, key, value) => {
12052
11802
  exports2.addEmailDomain = addEmailDomain;
12053
11803
  exports2.addFavouriteProjectId = addFavouriteProjectId;
12054
11804
  exports2.addIssue = addIssue;
12055
- exports2.addLicenses = addLicenses;
12056
11805
  exports2.addOrReplaceCategories = addOrReplaceCategories;
12057
11806
  exports2.addOrReplaceIssueComment = addOrReplaceIssueComment;
12058
11807
  exports2.addOrReplaceProjectFile = addOrReplaceProjectFile;
@@ -12152,8 +11901,6 @@ var __publicField = (obj, key, value) => {
12152
11901
  exports2.issueReducer = issueReducer;
12153
11902
  exports2.issueSlice = issueSlice;
12154
11903
  exports2.issueToSearchResult = issueToSearchResult;
12155
- exports2.licenseReducer = licenseReducer;
12156
- exports2.licenseSlice = licenseSlice;
12157
11904
  exports2.literalToCoordinates = literalToCoordinates;
12158
11905
  exports2.logOnlyOnce = logOnlyOnce;
12159
11906
  exports2.makeClient = makeClient;
@@ -12220,17 +11967,13 @@ var __publicField = (obj, key, value) => {
12220
11967
  exports2.searchIssues = searchIssues;
12221
11968
  exports2.selectAccessToken = selectAccessToken;
12222
11969
  exports2.selectActiveIssueId = selectActiveIssueId;
12223
- exports2.selectActiveLicense = selectActiveLicense;
12224
11970
  exports2.selectActiveOrganization = selectActiveOrganization;
12225
11971
  exports2.selectActiveOrganizationAccess = selectActiveOrganizationAccess;
12226
11972
  exports2.selectActiveOrganizationId = selectActiveOrganizationId;
12227
- exports2.selectActiveOrganizationLicenses = selectActiveOrganizationLicenses;
12228
- exports2.selectActiveOrganizationProjects = selectActiveOrganizationProjects;
12229
11973
  exports2.selectActiveProject = selectActiveProject;
12230
11974
  exports2.selectActiveProjectAccess = selectActiveProjectAccess;
12231
11975
  exports2.selectActiveProjectFileId = selectActiveProjectFileId;
12232
11976
  exports2.selectActiveProjectId = selectActiveProjectId;
12233
- exports2.selectActiveStatusLicenses = selectActiveStatusLicenses;
12234
11977
  exports2.selectActiveWorkspace = selectActiveWorkspace;
12235
11978
  exports2.selectActiveWorkspaceId = selectActiveWorkspaceId;
12236
11979
  exports2.selectAllAttachments = selectAllAttachments;
@@ -12276,7 +12019,6 @@ var __publicField = (obj, key, value) => {
12276
12019
  exports2.selectHiddenComponentTypeIds = selectHiddenComponentTypeIds;
12277
12020
  exports2.selectIsFetchingInitialData = selectIsFetchingInitialData;
12278
12021
  exports2.selectIsImportingProjectFile = selectIsImportingProjectFile;
12279
- exports2.selectIsLoading = selectIsLoading;
12280
12022
  exports2.selectIsLoggedIn = selectIsLoggedIn;
12281
12023
  exports2.selectIssue = selectIssue;
12282
12024
  exports2.selectIssueAttachmentMapping = selectIssueAttachmentMapping;
@@ -12286,10 +12028,6 @@ var __publicField = (obj, key, value) => {
12286
12028
  exports2.selectLatestFormRevision = selectLatestFormRevision;
12287
12029
  exports2.selectLatestRetryTime = selectLatestRetryTime;
12288
12030
  exports2.selectLatestRevisionByFormId = selectLatestRevisionByFormId;
12289
- exports2.selectLicense = selectLicense;
12290
- exports2.selectLicenseForProject = selectLicenseForProject;
12291
- exports2.selectLicenses = selectLicenses;
12292
- exports2.selectLicensesForProjectsMapping = selectLicensesForProjectsMapping;
12293
12031
  exports2.selectMainWorkspace = selectMainWorkspace;
12294
12032
  exports2.selectMapStyle = selectMapStyle;
12295
12033
  exports2.selectNumberOfComponentTypesMatchingCaseInsensitiveName = selectNumberOfComponentTypesMatchingCaseInsensitiveName;
@@ -12303,7 +12041,6 @@ var __publicField = (obj, key, value) => {
12303
12041
  exports2.selectOrganizationUsersAsMapping = selectOrganizationUsersAsMapping;
12304
12042
  exports2.selectOrganizationUsersIds = selectOrganizationUsersIds;
12305
12043
  exports2.selectOrganizations = selectOrganizations;
12306
- exports2.selectOrganizationsMapping = selectOrganizationsMapping;
12307
12044
  exports2.selectOrganizationsWithAccess = selectOrganizationsWithAccess;
12308
12045
  exports2.selectPermittedWorkspaceIds = selectPermittedWorkspaceIds;
12309
12046
  exports2.selectPhotoAttachmentsOfIssue = selectPhotoAttachmentsOfIssue;
@@ -12325,7 +12062,6 @@ var __publicField = (obj, key, value) => {
12325
12062
  exports2.selectRevisionsForForm = selectRevisionsForForm;
12326
12063
  exports2.selectShowTooltips = selectShowTooltips;
12327
12064
  exports2.selectSortedEmailDomains = selectSortedEmailDomains;
12328
- exports2.selectSortedOrganizationLicenses = selectSortedOrganizationLicenses;
12329
12065
  exports2.selectSortedOrganizationUsers = selectSortedOrganizationUsers;
12330
12066
  exports2.selectSortedProjectUsers = selectSortedProjectUsers;
12331
12067
  exports2.selectSortedProjects = selectSortedProjects;
@@ -12368,10 +12104,8 @@ var __publicField = (obj, key, value) => {
12368
12104
  exports2.setEnablePlacementMode = setEnablePlacementMode;
12369
12105
  exports2.setIsFetchingInitialData = setIsFetchingInitialData;
12370
12106
  exports2.setIsImportingProjectFile = setIsImportingProjectFile;
12371
- exports2.setIsLoading = setIsLoading;
12372
12107
  exports2.setIssueComments = setIssueComments;
12373
12108
  exports2.setIssues = setIssues;
12374
- exports2.setLicenses = setLicenses;
12375
12109
  exports2.setLoggedIn = setLoggedIn;
12376
12110
  exports2.setMapStyle = setMapStyle;
12377
12111
  exports2.setOrganizationAccesses = setOrganizationAccesses;
@@ -12410,7 +12144,6 @@ var __publicField = (obj, key, value) => {
12410
12144
  exports2.updateAttachment = updateAttachment;
12411
12145
  exports2.updateComponent = updateComponent;
12412
12146
  exports2.updateIssue = updateIssue;
12413
- exports2.updateLicense = updateLicense;
12414
12147
  exports2.updateOrCreateProject = updateOrCreateProject;
12415
12148
  exports2.updateOrganizationAccess = updateOrganizationAccess;
12416
12149
  exports2.updateProjectAccess = updateProjectAccess;