@overmap-ai/core 1.0.52 → 1.0.53-add-agent-slice.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.
@@ -678,15 +678,15 @@ const wrapMigration = (migrator) => (state) => {
678
678
  };
679
679
  const migrations = [initialVersioning, signOut, signOut, createOutboxState];
680
680
  const manifest = Object.fromEntries(migrations.map((migration2, i) => [i, wrapMigration(migration2)]));
681
- const initialState$q = {
681
+ const initialState$s = {
682
682
  accessToken: "",
683
683
  refreshToken: "",
684
684
  isLoggedIn: false
685
685
  };
686
686
  const authSlice = createSlice({
687
687
  name: "auth",
688
- initialState: initialState$q,
689
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$q)),
688
+ initialState: initialState$s,
689
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$s)),
690
690
  reducers: {
691
691
  setTokens: (state, action) => {
692
692
  state.accessToken = action.payload.accessToken;
@@ -1430,7 +1430,7 @@ const getLocalRelativeDateString = memoize((date, min, max) => {
1430
1430
  return getLocalDateString(date);
1431
1431
  return relative.format(days, "days");
1432
1432
  });
1433
- const initialState$p = {
1433
+ const initialState$r = {
1434
1434
  categories: {},
1435
1435
  usedCategoryColors: [],
1436
1436
  categoryVisibility: {
@@ -1440,8 +1440,8 @@ const initialState$p = {
1440
1440
  };
1441
1441
  const categorySlice = createSlice({
1442
1442
  name: "categories",
1443
- initialState: initialState$p,
1444
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$p)),
1443
+ initialState: initialState$r,
1444
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$r)),
1445
1445
  reducers: {
1446
1446
  setCategories: (state, action) => {
1447
1447
  if (!Array.isArray(action.payload))
@@ -1613,14 +1613,14 @@ function removeAttachments(state, action) {
1613
1613
  delete state.attachments[attachmentId];
1614
1614
  }
1615
1615
  }
1616
- const initialState$o = {
1616
+ const initialState$q = {
1617
1617
  components: {},
1618
1618
  attachments: {}
1619
1619
  };
1620
1620
  const componentSlice = createSlice({
1621
1621
  name: "components",
1622
- initialState: initialState$o,
1623
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$o)),
1622
+ initialState: initialState$q,
1623
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$q)),
1624
1624
  reducers: {
1625
1625
  addComponent: (state, action) => {
1626
1626
  state.components[action.payload.offline_id] = action.payload;
@@ -1776,13 +1776,13 @@ const {
1776
1776
  removeAllComponentsOfType
1777
1777
  } = componentSlice.actions;
1778
1778
  const componentReducer = componentSlice.reducer;
1779
- const initialState$n = {
1779
+ const initialState$p = {
1780
1780
  completionsByComponentId: {}
1781
1781
  };
1782
1782
  const componentStageCompletionSlice = createSlice({
1783
1783
  name: "componentStageCompletions",
1784
- initialState: initialState$n,
1785
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$n)),
1784
+ initialState: initialState$p,
1785
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$p)),
1786
1786
  reducers: {
1787
1787
  addStageCompletion: (state, action) => {
1788
1788
  let stageToCompletionDateMapping = state.completionsByComponentId[action.payload.component];
@@ -1833,13 +1833,13 @@ const selectCompletedStageIdsForComponent = (component) => (state) => {
1833
1833
  return Object.keys(state.componentStageCompletionReducer.completionsByComponentId[component.offline_id] ?? {});
1834
1834
  };
1835
1835
  const componentStageCompletionReducer = componentStageCompletionSlice.reducer;
1836
- const initialState$m = {
1836
+ const initialState$o = {
1837
1837
  stages: {}
1838
1838
  };
1839
1839
  const componentStageSlice = createSlice({
1840
1840
  name: "componentStages",
1841
- initialState: initialState$m,
1842
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$m)),
1841
+ initialState: initialState$o,
1842
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$o)),
1843
1843
  reducers: {
1844
1844
  addStages: (state, action) => {
1845
1845
  Object.assign(state.stages, toOfflineIdRecord(action.payload));
@@ -1949,15 +1949,15 @@ const selectStageFormIdsFromStageIds = restructureCreateSelectorWithArgs(
1949
1949
  );
1950
1950
  const { addStages, updateStages, removeStages, linkStageToForm, unlinkStageToForm } = componentStageSlice.actions;
1951
1951
  const componentStageReducer = componentStageSlice.reducer;
1952
- const initialState$l = {
1952
+ const initialState$n = {
1953
1953
  componentTypes: {},
1954
1954
  hiddenComponentTypeIds: {},
1955
1955
  attachments: {}
1956
1956
  };
1957
1957
  const componentTypeSlice = createSlice({
1958
1958
  name: "componentTypes",
1959
- initialState: initialState$l,
1960
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$l)),
1959
+ initialState: initialState$n,
1960
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$n)),
1961
1961
  reducers: {
1962
1962
  addComponentType: (state, action) => {
1963
1963
  state.componentTypes[action.payload.offline_id] = action.payload;
@@ -2068,13 +2068,13 @@ const {
2068
2068
  deleteComponentType
2069
2069
  } = componentTypeSlice.actions;
2070
2070
  const componentTypeReducer = componentTypeSlice.reducer;
2071
- const initialState$k = {
2071
+ const initialState$m = {
2072
2072
  workspaces: {},
2073
2073
  activeWorkspaceId: null
2074
2074
  };
2075
2075
  const workspaceSlice = createSlice({
2076
2076
  name: "workspace",
2077
- initialState: initialState$k,
2077
+ initialState: initialState$m,
2078
2078
  // The `reducers` field lets us define reducers and generate associated actions
2079
2079
  reducers: {
2080
2080
  setWorkspaces: (state, action) => {
@@ -2131,7 +2131,7 @@ const selectPermittedWorkspaceIds = createSelector(
2131
2131
  );
2132
2132
  const workspaceReducer = workspaceSlice.reducer;
2133
2133
  const maxRecentIssues = 10;
2134
- const initialState$j = {
2134
+ const initialState$l = {
2135
2135
  issues: {},
2136
2136
  attachments: {},
2137
2137
  comments: {},
@@ -2143,9 +2143,9 @@ const initialState$j = {
2143
2143
  };
2144
2144
  const issueSlice = createSlice({
2145
2145
  name: "issues",
2146
- initialState: initialState$j,
2146
+ initialState: initialState$l,
2147
2147
  extraReducers: (builder) => builder.addCase("RESET", (state) => {
2148
- Object.assign(state, initialState$j);
2148
+ Object.assign(state, initialState$l);
2149
2149
  }),
2150
2150
  reducers: {
2151
2151
  setIssues: (state, action) => {
@@ -2176,6 +2176,16 @@ const issueSlice = createSlice({
2176
2176
  }
2177
2177
  state.issues[action.payload.offline_id] = action.payload;
2178
2178
  },
2179
+ addIssues: (state, action) => {
2180
+ for (const issue of action.payload) {
2181
+ if (issue.offline_id in state.issues) {
2182
+ throw new Error(`Tried to add duplicate issue with ID: ${issue.offline_id}`);
2183
+ }
2184
+ }
2185
+ for (const issue of action.payload) {
2186
+ state.issues[issue.offline_id] = issue;
2187
+ }
2188
+ },
2179
2189
  addIssueAttachment: addAttachment,
2180
2190
  addIssueAttachments: addAttachments,
2181
2191
  addIssueUpdate: (state, action) => {
@@ -2207,6 +2217,11 @@ const issueSlice = createSlice({
2207
2217
  throw new Error(`Failed to remove issue because ID doesn't exist: ${action.payload}`);
2208
2218
  }
2209
2219
  },
2220
+ removeIssues: (state, action) => {
2221
+ for (const issueId of action.payload) {
2222
+ delete state.issues[issueId];
2223
+ }
2224
+ },
2210
2225
  removeIssueAttachment: removeAttachment,
2211
2226
  removeIssueUpdate: (state, action) => {
2212
2227
  if (action.payload in state.updates) {
@@ -2311,6 +2326,7 @@ const {
2311
2326
  addIssueAttachment,
2312
2327
  addIssueAttachments,
2313
2328
  addIssue,
2329
+ addIssues,
2314
2330
  addIssueUpdate,
2315
2331
  addIssueUpdates,
2316
2332
  addOrReplaceIssueComment,
@@ -2319,6 +2335,7 @@ const {
2319
2335
  removeIssueAttachment,
2320
2336
  removeAttachmentsOfIssue,
2321
2337
  removeIssue,
2338
+ removeIssues,
2322
2339
  removeIssueUpdate,
2323
2340
  removeIssueUpdates,
2324
2341
  removeRecentIssue,
@@ -2553,15 +2570,89 @@ const selectRecentIssuesAsSearchResults = createSelector(
2553
2570
  }
2554
2571
  );
2555
2572
  const issueReducer = issueSlice.reducer;
2556
- const initialState$i = {
2573
+ const initialState$k = {
2574
+ issueTypes: {}
2575
+ };
2576
+ const issueTypeSlice = createSlice({
2577
+ name: "issueTypes",
2578
+ initialState: initialState$k,
2579
+ extraReducers: (builder) => builder.addCase("RESET", (state) => {
2580
+ Object.assign(state, initialState$k);
2581
+ }),
2582
+ reducers: {
2583
+ setIssueTypes: (state, action) => {
2584
+ for (const issueType of action.payload) {
2585
+ state.issueTypes[issueType.offline_id] = issueType;
2586
+ }
2587
+ },
2588
+ setIssueType: (state, action) => {
2589
+ state.issueTypes[action.payload.offline_id] = action.payload;
2590
+ },
2591
+ addIssueType: (state, action) => {
2592
+ if (action.payload.offline_id in state.issueTypes) {
2593
+ throw new Error(`IssueType with offline_id ${action.payload.offline_id} already exists in the store.`);
2594
+ }
2595
+ state.issueTypes[action.payload.offline_id] = action.payload;
2596
+ },
2597
+ updateIssueType: (state, action) => {
2598
+ if (!(action.payload.offline_id in state.issueTypes)) {
2599
+ throw new Error(`IssueType with offline_id ${action.payload.offline_id} does not exist in the store.`);
2600
+ }
2601
+ state.issueTypes[action.payload.offline_id] = action.payload;
2602
+ },
2603
+ removeIssueType: (state, action) => {
2604
+ if (!(action.payload in state.issueTypes)) {
2605
+ throw new Error(`IssueType with offline_id ${action.payload} does not exist in the store.`);
2606
+ }
2607
+ delete state.issueTypes[action.payload];
2608
+ }
2609
+ }
2610
+ });
2611
+ const { setIssueTypes, setIssueType, addIssueType, updateIssueType, removeIssueType } = issueTypeSlice.actions;
2612
+ const selectIssueTypeMapping = (state) => {
2613
+ return state.issueTypeReducer.issueTypes;
2614
+ };
2615
+ const selectIssueTypes = createSelector(selectIssueTypeMapping, (issueTypes) => {
2616
+ return Object.values(issueTypes);
2617
+ });
2618
+ const selectIssueType = restructureCreateSelectorWithArgs(
2619
+ createSelector(
2620
+ [selectIssueTypeMapping, (_, issueTypeId) => issueTypeId],
2621
+ (issueTypesMapping, issueTypeId) => {
2622
+ return issueTypesMapping[issueTypeId];
2623
+ }
2624
+ )
2625
+ );
2626
+ const selectIssueTypesOfOrganization = restructureCreateSelectorWithArgs(
2627
+ createSelector(
2628
+ [selectIssueTypes, (_, organizationId) => organizationId],
2629
+ (issueTypes, organizationId) => {
2630
+ return issueTypes.filter((issueType) => issueType.organization === organizationId);
2631
+ }
2632
+ )
2633
+ );
2634
+ const selectIssuesOfIssueType = restructureCreateSelectorWithArgs(
2635
+ createSelector(
2636
+ [(state) => state.issueReducer.issues, (_, issueTypeId) => issueTypeId],
2637
+ (issuesMapping, issueTypeId) => {
2638
+ return Object.values(issuesMapping).filter((issue) => issue.issue_type === issueTypeId);
2639
+ }
2640
+ )
2641
+ );
2642
+ const selectIssuesOfIssueTypeCount = (issueTypeId) => (state) => {
2643
+ var _a2;
2644
+ return ((_a2 = selectIssuesOfIssueType(issueTypeId)(state)) == null ? void 0 : _a2.length) ?? 0;
2645
+ };
2646
+ const issueTypeReducer = issueTypeSlice.reducer;
2647
+ const initialState$j = {
2557
2648
  s3Urls: {}
2558
2649
  };
2559
2650
  const msPerHour = 1e3 * 60 * 60;
2560
2651
  const msPerWeek = msPerHour * 24 * 7;
2561
2652
  const fileSlice = createSlice({
2562
2653
  name: "file",
2563
- initialState: initialState$i,
2564
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$i)),
2654
+ initialState: initialState$j,
2655
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$j)),
2565
2656
  reducers: {
2566
2657
  setUploadUrl: (state, action) => {
2567
2658
  const { url, fields, sha1 } = action.payload;
@@ -2588,7 +2679,7 @@ const selectUploadUrl = (sha1) => (state) => {
2588
2679
  return url;
2589
2680
  };
2590
2681
  const fileReducer = fileSlice.reducer;
2591
- const initialState$h = {
2682
+ const initialState$i = {
2592
2683
  // TODO: Change first MapStyle.SATELLITE to MaptStyle.None when project creation map is fixed
2593
2684
  mapStyle: MapStyle.SATELLITE,
2594
2685
  showTooltips: false,
@@ -2596,8 +2687,8 @@ const initialState$h = {
2596
2687
  };
2597
2688
  const mapSlice = createSlice({
2598
2689
  name: "map",
2599
- initialState: initialState$h,
2600
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$h)),
2690
+ initialState: initialState$i,
2691
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$i)),
2601
2692
  reducers: {
2602
2693
  setMapStyle: (state, action) => {
2603
2694
  state.mapStyle = action.payload;
@@ -2666,7 +2757,7 @@ var LicenseStatus = /* @__PURE__ */ ((LicenseStatus2) => {
2666
2757
  LicenseStatus2[LicenseStatus2["PAST_DUE"] = 8] = "PAST_DUE";
2667
2758
  return LicenseStatus2;
2668
2759
  })(LicenseStatus || {});
2669
- const initialState$g = {
2760
+ const initialState$h = {
2670
2761
  users: {},
2671
2762
  currentUser: {
2672
2763
  id: 0,
@@ -2677,8 +2768,8 @@ const initialState$g = {
2677
2768
  };
2678
2769
  const userSlice = createSlice({
2679
2770
  name: "users",
2680
- initialState: initialState$g,
2681
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$g)),
2771
+ initialState: initialState$h,
2772
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$h)),
2682
2773
  reducers: {
2683
2774
  setUsers: (state, action) => {
2684
2775
  const usersMapping = {};
@@ -2740,13 +2831,13 @@ const selectUser = (userId) => (state) => {
2740
2831
  const selectUsersAsMapping = (state) => state.userReducer.users;
2741
2832
  const selectFavouriteProjects = (state) => state.userReducer.currentUser.profile.favourite_project_ids;
2742
2833
  const userReducer = userSlice.reducer;
2743
- const initialState$f = {
2834
+ const initialState$g = {
2744
2835
  organizationAccesses: {}
2745
2836
  };
2746
2837
  const organizationAccessSlice = createSlice({
2747
2838
  name: "organizationAccess",
2748
- initialState: initialState$f,
2749
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$f)),
2839
+ initialState: initialState$g,
2840
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$g)),
2750
2841
  reducers: {
2751
2842
  setOrganizationAccesses: (state, action) => {
2752
2843
  if (!Array.isArray(action.payload))
@@ -2809,13 +2900,13 @@ const selectOrganizationAccessUserMapping = (state) => {
2809
2900
  return organizationAccesses;
2810
2901
  };
2811
2902
  const organizationAccessReducer = organizationAccessSlice.reducer;
2812
- const initialState$e = {
2903
+ const initialState$f = {
2813
2904
  licenses: {}
2814
2905
  };
2815
2906
  const licenseSlice = createSlice({
2816
2907
  name: "license",
2817
- initialState: initialState$e,
2818
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$e)),
2908
+ initialState: initialState$f,
2909
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$f)),
2819
2910
  reducers: {
2820
2911
  setLicenses: (state, action) => {
2821
2912
  if (!Array.isArray(action.payload))
@@ -2860,13 +2951,13 @@ const selectLicensesForProjectsMapping = createSelector(
2860
2951
  (licenses) => Object.values(licenses).filter((license) => license.project).reduce((accum, license) => ({ ...accum, [license.project]: license }), {})
2861
2952
  );
2862
2953
  const licenseReducer = licenseSlice.reducer;
2863
- const initialState$d = {
2954
+ const initialState$e = {
2864
2955
  projectAccesses: {}
2865
2956
  };
2866
2957
  const projectAccessSlice = createSlice({
2867
2958
  name: "projectAccess",
2868
- initialState: initialState$d,
2869
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$d)),
2959
+ initialState: initialState$e,
2960
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$e)),
2870
2961
  reducers: {
2871
2962
  setProjectAccesses: (state, action) => {
2872
2963
  if (!Array.isArray(action.payload))
@@ -2934,7 +3025,7 @@ const selectProjectAccessUserMapping = (state) => {
2934
3025
  return projectAccesses;
2935
3026
  };
2936
3027
  const projectAccessReducer = projectAccessSlice.reducer;
2937
- const initialState$c = {
3028
+ const initialState$d = {
2938
3029
  projects: {},
2939
3030
  activeProjectId: null,
2940
3031
  recentProjectIds: [],
@@ -2944,7 +3035,7 @@ const initialState$c = {
2944
3035
  };
2945
3036
  const projectSlice = createSlice({
2946
3037
  name: "projects",
2947
- initialState: initialState$c,
3038
+ initialState: initialState$d,
2948
3039
  reducers: {
2949
3040
  setProjects: (state, action) => {
2950
3041
  const projectsMap = {};
@@ -3131,14 +3222,14 @@ const selectAttachmentsOfProjectByType = restructureCreateSelectorWithArgs(
3131
3222
  }
3132
3223
  )
3133
3224
  );
3134
- const initialState$b = {
3225
+ const initialState$c = {
3135
3226
  organizations: {},
3136
3227
  activeOrganizationId: null
3137
3228
  };
3138
3229
  const organizationSlice = createSlice({
3139
3230
  name: "organizations",
3140
- initialState: initialState$b,
3141
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$b)),
3231
+ initialState: initialState$c,
3232
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$c)),
3142
3233
  reducers: {
3143
3234
  setOrganizations: (state, action) => {
3144
3235
  for (const org of action.payload) {
@@ -3257,14 +3348,14 @@ const createOfflineAction = (request2, baseUrl) => {
3257
3348
  }
3258
3349
  };
3259
3350
  };
3260
- const initialState$a = {
3351
+ const initialState$b = {
3261
3352
  deletedRequests: [],
3262
3353
  latestRetryTime: 0
3263
3354
  };
3264
3355
  const outboxSlice = createSlice({
3265
3356
  name: "outbox",
3266
- initialState: initialState$a,
3267
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$a)),
3357
+ initialState: initialState$b,
3358
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$b)),
3268
3359
  reducers: {
3269
3360
  // enqueueActions is a reducer that does nothing but enqueue API request to the Redux Offline outbox
3270
3361
  // Whenever an issue is being created, a reducer addIssue() is responsible for adding it to the offline store
@@ -3296,7 +3387,7 @@ const selectDeletedRequests = (state) => state.outboxReducer.deletedRequests;
3296
3387
  const selectLatestRetryTime = (state) => state.outboxReducer.latestRetryTime;
3297
3388
  const { enqueueRequest, markForDeletion, markAsDeleted, _setLatestRetryTime } = outboxSlice.actions;
3298
3389
  const outboxReducer = outboxSlice.reducer;
3299
- const initialState$9 = {
3390
+ const initialState$a = {
3300
3391
  projectFiles: {},
3301
3392
  activeProjectFileId: null,
3302
3393
  isImportingProjectFile: false,
@@ -3304,8 +3395,8 @@ const initialState$9 = {
3304
3395
  };
3305
3396
  const projectFileSlice = createSlice({
3306
3397
  name: "projectFiles",
3307
- initialState: initialState$9,
3308
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$9)),
3398
+ initialState: initialState$a,
3399
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$a)),
3309
3400
  reducers: {
3310
3401
  addOrReplaceProjectFiles: (state, action) => {
3311
3402
  for (let fileObj of action.payload) {
@@ -3406,12 +3497,12 @@ const selectProjectFiles = createSelector(
3406
3497
  const selectActiveProjectFileId = (state) => state.projectFileReducer.activeProjectFileId;
3407
3498
  const selectIsImportingProjectFile = (state) => state.projectFileReducer.isImportingProjectFile;
3408
3499
  const projectFileReducer = projectFileSlice.reducer;
3409
- const initialState$8 = {
3500
+ const initialState$9 = {
3410
3501
  isRehydrated: false
3411
3502
  };
3412
3503
  const rehydratedSlice = createSlice({
3413
3504
  name: "rehydrated",
3414
- initialState: initialState$8,
3505
+ initialState: initialState$9,
3415
3506
  // The `reducers` field lets us define reducers and generate associated actions
3416
3507
  reducers: {
3417
3508
  setRehydrated: (state, action) => {
@@ -3421,7 +3512,7 @@ const rehydratedSlice = createSlice({
3421
3512
  });
3422
3513
  const selectRehydrated = (state) => state.rehydratedReducer.isRehydrated;
3423
3514
  const rehydratedReducer = rehydratedSlice.reducer;
3424
- const initialState$7 = {
3515
+ const initialState$8 = {
3425
3516
  useIssueTemplate: false,
3426
3517
  placementMode: false,
3427
3518
  enableClustering: false,
@@ -3438,8 +3529,8 @@ const initialState$7 = {
3438
3529
  };
3439
3530
  const settingSlice = createSlice({
3440
3531
  name: "settings",
3441
- initialState: initialState$7,
3442
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$7)),
3532
+ initialState: initialState$8,
3533
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$8)),
3443
3534
  reducers: {
3444
3535
  setEnableDuplicateIssues: (state, action) => {
3445
3536
  state.useIssueTemplate = action.payload;
@@ -3498,14 +3589,14 @@ const formRevisionSortFn = (formRevisionA, formRevisionB) => {
3498
3589
  return revisionA < revisionB ? -1 : 1;
3499
3590
  }
3500
3591
  };
3501
- const initialState$6 = {
3592
+ const initialState$7 = {
3502
3593
  formRevisions: {},
3503
3594
  attachments: {}
3504
3595
  };
3505
3596
  const formRevisionsSlice = createSlice({
3506
3597
  name: "formRevisions",
3507
- initialState: initialState$6,
3508
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$6)),
3598
+ initialState: initialState$7,
3599
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$7)),
3509
3600
  reducers: {
3510
3601
  // revision related actions
3511
3602
  setFormRevision: (state, action) => {
@@ -3685,13 +3776,13 @@ const selectAttachmentsOfFormRevision = restructureCreateSelectorWithArgs(
3685
3776
  )
3686
3777
  );
3687
3778
  const formRevisionReducer = formRevisionsSlice.reducer;
3688
- const initialState$5 = {
3779
+ const initialState$6 = {
3689
3780
  forms: {}
3690
3781
  };
3691
3782
  const formSlice = createSlice({
3692
3783
  name: "forms",
3693
- initialState: initialState$5,
3694
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$5)),
3784
+ initialState: initialState$6,
3785
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$6)),
3695
3786
  reducers: {
3696
3787
  setForms: (state, action) => {
3697
3788
  state.forms = {};
@@ -3781,6 +3872,14 @@ const selectFormOfComponentType = restructureCreateSelectorWithArgs(
3781
3872
  }
3782
3873
  )
3783
3874
  );
3875
+ const selectFormOfIssueType = restructureCreateSelectorWithArgs(
3876
+ createSelector(
3877
+ [selectFormMapping, (_state, issueTypeId) => issueTypeId],
3878
+ (userForms, issueTypeId) => {
3879
+ return Object.values(userForms).find((userForm) => userForm.issue_type === issueTypeId);
3880
+ }
3881
+ )
3882
+ );
3784
3883
  const selectFormsCount = createSelector([selectFormMapping], (userForms) => {
3785
3884
  return Object.keys(userForms).length;
3786
3885
  });
@@ -3788,14 +3887,14 @@ const selectGeneralFormCount = createSelector([selectFormMapping], (userForms) =
3788
3887
  return Object.values(userForms).filter((form) => !form.component_type).length;
3789
3888
  });
3790
3889
  const formReducer = formSlice.reducer;
3791
- const initialState$4 = {
3890
+ const initialState$5 = {
3792
3891
  formSubmissions: {},
3793
3892
  attachments: {}
3794
3893
  };
3795
3894
  const formSubmissionSlice = createSlice({
3796
3895
  name: "formSubmissions",
3797
- initialState: initialState$4,
3798
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$4)),
3896
+ initialState: initialState$5,
3897
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$5)),
3799
3898
  reducers: {
3800
3899
  setFormSubmission: (state, action) => {
3801
3900
  state.formSubmissions[action.payload.offline_id] = action.payload;
@@ -3946,6 +4045,43 @@ const selectFormSubmissionsOfForm = restructureCreateSelectorWithArgs(
3946
4045
  }
3947
4046
  )
3948
4047
  );
4048
+ const selectFormSubmissionsByFormRevisions = createSelector([selectFormRevisionMapping, selectFormSubmissions], (revisions, submissions) => {
4049
+ var _a2;
4050
+ const submissionMapping = {};
4051
+ for (const revisionId in revisions) {
4052
+ submissionMapping[revisionId] = [];
4053
+ }
4054
+ for (const submission of submissions) {
4055
+ (_a2 = submissionMapping[submission.form_revision]) == null ? void 0 : _a2.push(submission);
4056
+ }
4057
+ return submissionMapping;
4058
+ });
4059
+ const selectSortedFormSubmissionsOfForm = restructureCreateSelectorWithArgs(
4060
+ createSelector(
4061
+ [
4062
+ selectFormRevisionMapping,
4063
+ selectFormSubmissionsByFormRevisions,
4064
+ (_state, formId2) => formId2
4065
+ ],
4066
+ (revisionsMapping, submissionsByRevision, formId2) => {
4067
+ const submissionsByFormRevisions = {};
4068
+ for (const revisionId in revisionsMapping) {
4069
+ const revision = revisionsMapping[revisionId];
4070
+ const submissionsOfRevision = submissionsByRevision[revisionId];
4071
+ if (revision && submissionsOfRevision && revision.form === formId2) {
4072
+ submissionsByFormRevisions[revisionId] = submissionsOfRevision.sort(
4073
+ (a, b) => a.submitted_at < b.submitted_at ? -1 : 1
4074
+ );
4075
+ }
4076
+ }
4077
+ return Object.entries(submissionsByFormRevisions).sort((a, b) => {
4078
+ const aRevision = revisionsMapping[a[0]];
4079
+ const bRevision = revisionsMapping[b[0]];
4080
+ return formRevisionSortFn(aRevision, bRevision);
4081
+ }).map(([_revisionId, submissions]) => submissions).flat();
4082
+ }
4083
+ )
4084
+ );
3949
4085
  const selectFormSubmissionsOfIssue = restructureCreateSelectorWithArgs(
3950
4086
  createSelector(
3951
4087
  [selectFormSubmissions, (_state, issueId) => issueId],
@@ -3995,12 +4131,12 @@ const selectAttachmentsOfFormSubmission = restructureCreateSelectorWithArgs(
3995
4131
  )
3996
4132
  );
3997
4133
  const formSubmissionReducer = formSubmissionSlice.reducer;
3998
- const initialState$3 = {
4134
+ const initialState$4 = {
3999
4135
  emailDomains: {}
4000
4136
  };
4001
4137
  const emailDomainsSlice = createSlice({
4002
4138
  name: "emailDomains",
4003
- initialState: initialState$3,
4139
+ initialState: initialState$4,
4004
4140
  reducers: {
4005
4141
  setEmailDomains: (state, action) => {
4006
4142
  const emailDomains = {};
@@ -4027,15 +4163,15 @@ const selectSortedEmailDomains = (state) => Object.values(state.emailDomainsRedu
4027
4163
  (ed1, ed2) => ed1.domain.localeCompare(ed2.domain)
4028
4164
  );
4029
4165
  const emailDomainsReducer = emailDomainsSlice.reducer;
4030
- const initialState$2 = {
4166
+ const initialState$3 = {
4031
4167
  documents: {},
4032
4168
  attachments: {}
4033
4169
  };
4034
4170
  const documentSlice = createSlice({
4035
4171
  name: "documents",
4036
- initialState: initialState$2,
4172
+ initialState: initialState$3,
4037
4173
  extraReducers: (builder) => builder.addCase("RESET", (state) => {
4038
- Object.assign(state, initialState$2);
4174
+ Object.assign(state, initialState$3);
4039
4175
  }),
4040
4176
  reducers: {
4041
4177
  setDocuments: (state, action) => {
@@ -4260,13 +4396,13 @@ const selectAttachmentsOfDocumentByType = restructureCreateSelectorWithArgs(
4260
4396
  )
4261
4397
  );
4262
4398
  const documentsReducer = documentSlice.reducer;
4263
- const initialState$1 = {
4399
+ const initialState$2 = {
4264
4400
  teams: {}
4265
4401
  };
4266
4402
  const teamSlice = createSlice({
4267
4403
  name: "teams",
4268
- initialState: initialState$1,
4269
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$1)),
4404
+ initialState: initialState$2,
4405
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$2)),
4270
4406
  reducers: {
4271
4407
  setTeam: (state, action) => {
4272
4408
  state.teams[action.payload.offline_id] = action.payload;
@@ -4316,6 +4452,22 @@ const selectTeamsOfUser = restructureCreateSelectorWithArgs(
4316
4452
  })
4317
4453
  );
4318
4454
  const teamReducer = teamSlice.reducer;
4455
+ const initialState$1 = {
4456
+ conversationId: void 0
4457
+ };
4458
+ const agentSlice = createSlice({
4459
+ name: "agents",
4460
+ initialState: initialState$1,
4461
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$1)),
4462
+ reducers: {
4463
+ setConversationId: (state, action) => {
4464
+ state.conversationId = action.payload;
4465
+ }
4466
+ }
4467
+ });
4468
+ const { setConversationId } = agentSlice.actions;
4469
+ const selectConversationId = (state) => state.agentReducer.conversationId;
4470
+ const agentReducer = agentSlice.reducer;
4319
4471
  const initialState = {
4320
4472
  version: 0
4321
4473
  };
@@ -4348,6 +4500,7 @@ const overmapReducers = {
4348
4500
  componentStageReducer,
4349
4501
  componentTypeReducer,
4350
4502
  issueReducer,
4503
+ issueTypeReducer,
4351
4504
  mapReducer,
4352
4505
  organizationReducer,
4353
4506
  outboxReducer,
@@ -4365,7 +4518,8 @@ const overmapReducers = {
4365
4518
  emailDomainsReducer,
4366
4519
  licenseReducer,
4367
4520
  documentsReducer,
4368
- teamReducer
4521
+ teamReducer,
4522
+ agentReducer
4369
4523
  };
4370
4524
  const overmapReducer = combineReducers(overmapReducers);
4371
4525
  const resetStore = "RESET";
@@ -6292,7 +6446,7 @@ class IssueService extends BaseApiService {
6292
6446
  // Basic CRUD functions
6293
6447
  // TODO: Once all models are represented in `Created<TModel>`, use `Created` in `OptimisticModelResult`, so we don't
6294
6448
  // have to repeat it for all optimistic model results (all optimistic results are created).
6295
- add(issue) {
6449
+ add(issue, issue_type = null) {
6296
6450
  const { store } = this.client;
6297
6451
  const dateWithoutMilliseconds = /* @__PURE__ */ new Date();
6298
6452
  const state = store.getState();
@@ -6318,7 +6472,8 @@ class IssueService extends BaseApiService {
6318
6472
  method: HttpMethod.POST,
6319
6473
  url: "/issues/",
6320
6474
  queryParams: {
6321
- workspace_id: workspaceId
6475
+ workspace_id: workspaceId,
6476
+ ...issue_type ? { issue_type } : {}
6322
6477
  },
6323
6478
  payload: issuePayload,
6324
6479
  blockers: [
@@ -6503,6 +6658,103 @@ class IssueService extends BaseApiService {
6503
6658
  store.dispatch(setIssues(result));
6504
6659
  }
6505
6660
  }
6661
+ class IssueTypeService extends BaseApiService {
6662
+ add(payload) {
6663
+ const { store } = this.client;
6664
+ const activeOrganizationId = store.getState().organizationReducer.activeOrganizationId;
6665
+ if (!activeOrganizationId) {
6666
+ throw new Error(`No active organization, got ${activeOrganizationId} for activeOrganizationId.`);
6667
+ }
6668
+ const offlineIssueType = offline({
6669
+ ...payload,
6670
+ submitted_at: (/* @__PURE__ */ new Date()).toISOString(),
6671
+ created_by: store.getState().userReducer.currentUser.id,
6672
+ organization: activeOrganizationId
6673
+ });
6674
+ store.dispatch(addIssueType(offlineIssueType));
6675
+ const promise = this.enqueueRequest({
6676
+ method: HttpMethod.POST,
6677
+ url: `/organizations/${activeOrganizationId}/issue-types/`,
6678
+ // Sending only whats needed here
6679
+ payload: {
6680
+ offline_id: offlineIssueType.offline_id,
6681
+ submitted_at: offlineIssueType.submitted_at,
6682
+ icon: offlineIssueType.icon,
6683
+ icon_color: offlineIssueType.icon_color,
6684
+ name: offlineIssueType.name,
6685
+ description: offlineIssueType.description
6686
+ },
6687
+ blockers: [],
6688
+ blocks: [offlineIssueType.offline_id]
6689
+ });
6690
+ promise.then((createdIssueType) => {
6691
+ store.dispatch(setIssueType(createdIssueType));
6692
+ }).catch(() => {
6693
+ store.dispatch(removeIssueType(offlineIssueType.offline_id));
6694
+ });
6695
+ return [offlineIssueType, promise];
6696
+ }
6697
+ update(issueTypeFields) {
6698
+ const { store } = this.client;
6699
+ const issueTypeToBeUpdated = store.getState().issueTypeReducer.issueTypes[issueTypeFields.offline_id];
6700
+ if (!issueTypeToBeUpdated) {
6701
+ throw new Error(`IssueType with offline_id ${issueTypeFields.offline_id} does not exist in the store.`);
6702
+ }
6703
+ const offlineUpdatedIssueType = {
6704
+ ...issueTypeToBeUpdated,
6705
+ ...issueTypeFields
6706
+ };
6707
+ store.dispatch(updateIssueType(offlineUpdatedIssueType));
6708
+ const promise = this.enqueueRequest({
6709
+ method: HttpMethod.PATCH,
6710
+ url: `/issues/types/${issueTypeFields.offline_id}/`,
6711
+ payload: issueTypeFields,
6712
+ blockers: [issueTypeFields.offline_id],
6713
+ blocks: [issueTypeFields.offline_id]
6714
+ });
6715
+ promise.then((updatedIssueType) => {
6716
+ store.dispatch(setIssueType(updatedIssueType));
6717
+ }).catch(() => {
6718
+ store.dispatch(setIssueType(issueTypeToBeUpdated));
6719
+ });
6720
+ return [offlineUpdatedIssueType, promise];
6721
+ }
6722
+ delete(issueTypeId) {
6723
+ const { store } = this.client;
6724
+ const issueTypeToDelete = store.getState().issueTypeReducer.issueTypes[issueTypeId];
6725
+ if (!issueTypeToDelete) {
6726
+ throw new Error(`IssueType with offline_id ${issueTypeId} does not exist in the store.`);
6727
+ }
6728
+ const issuesOfIssueType = selectIssuesOfIssueType(issueTypeId)(store.getState()) ?? [];
6729
+ store.dispatch(removeIssueType(issueTypeId));
6730
+ store.dispatch(removeIssues(issuesOfIssueType.map((issue) => issue.offline_id)));
6731
+ const promise = this.enqueueRequest({
6732
+ method: HttpMethod.DELETE,
6733
+ url: `/issues/types/${issueTypeId}/`,
6734
+ blockers: [issueTypeId],
6735
+ blocks: []
6736
+ });
6737
+ promise.catch(() => {
6738
+ store.dispatch(setIssueType(issueTypeToDelete));
6739
+ store.dispatch(addIssues(issuesOfIssueType));
6740
+ });
6741
+ return promise;
6742
+ }
6743
+ async refreshStore() {
6744
+ const { store } = this.client;
6745
+ const activeOrganizationId = store.getState().organizationReducer.activeOrganizationId;
6746
+ if (!activeOrganizationId) {
6747
+ throw new Error(`No active organization, got ${activeOrganizationId} for activeOrganizationId.`);
6748
+ }
6749
+ const result = await this.enqueueRequest({
6750
+ method: HttpMethod.GET,
6751
+ url: `/organizations/${activeOrganizationId}/issue-types/`,
6752
+ blockers: [],
6753
+ blocks: []
6754
+ });
6755
+ store.dispatch(setIssueTypes(result));
6756
+ }
6757
+ }
6506
6758
  class MainService extends BaseApiService {
6507
6759
  async fetchInitialData(replaceExisting, uuid) {
6508
6760
  if (replaceExisting) {
@@ -6678,6 +6930,7 @@ class MainService extends BaseApiService {
6678
6930
  });
6679
6931
  void this.client.documents.refreshStore();
6680
6932
  void this.client.issueUpdates.refreshStore();
6933
+ void this.client.issueTypes.refreshStore();
6681
6934
  }
6682
6935
  store.dispatch(setIsFetchingInitialData(false));
6683
6936
  if (overwrite) {
@@ -7047,7 +7300,7 @@ class UserFormService extends BaseApiService {
7047
7300
  });
7048
7301
  });
7049
7302
  }
7050
- async add(state, initialRevision, url, ownerUser, ownerOrganization, componentTypeId) {
7303
+ async add(state, initialRevision, url, ownerUser, ownerOrganization, componentTypeId, issueTypeId) {
7051
7304
  if (!!ownerUser === !!ownerOrganization) {
7052
7305
  throw new Error("Exactly one of ownerUser and ownerOrganization must be defined.");
7053
7306
  }
@@ -7067,6 +7320,7 @@ class UserFormService extends BaseApiService {
7067
7320
  submitted_at: submittedAt,
7068
7321
  created_by: currentUser.id,
7069
7322
  ...componentTypeId && { component_type: componentTypeId },
7323
+ ...issueTypeId && { issue_type: issueTypeId },
7070
7324
  ...ownerAttrs
7071
7325
  };
7072
7326
  const { payloadWithoutImage, images } = await separateImageFromFields(offlineRevisionPayload);
@@ -7090,9 +7344,10 @@ class UserFormService extends BaseApiService {
7090
7344
  payload: {
7091
7345
  ...offlineFormPayload,
7092
7346
  ...componentTypeId && { component_type: componentTypeId },
7347
+ ...issueTypeId && { issue_type: issueTypeId },
7093
7348
  initial_revision: payloadWithoutImage
7094
7349
  },
7095
- blockers: componentTypeId ? [componentTypeId] : [],
7350
+ blockers: componentTypeId ? [componentTypeId] : issueTypeId ? [issueTypeId] : [],
7096
7351
  blocks: [offlineFormPayload.offline_id, payloadWithoutImage.offline_id]
7097
7352
  });
7098
7353
  const attachImagesPromises = this.getAttachImagePromises(images, offlineRevisionPayload.offline_id);
@@ -7104,7 +7359,7 @@ class UserFormService extends BaseApiService {
7104
7359
  const settledPromise = Promise.all([formPromise, ...attachImagesPromises]).then(() => formPromise);
7105
7360
  return [retForm, retRevision, formPromise, settledPromise];
7106
7361
  }
7107
- async addForOrganization(initialRevision, componentTypeId) {
7362
+ async addForOrganization(initialRevision, attachedTo) {
7108
7363
  const state = this.client.store.getState();
7109
7364
  const activeOrganizationId = state.organizationReducer.activeOrganizationId;
7110
7365
  if (!activeOrganizationId) {
@@ -7116,13 +7371,22 @@ class UserFormService extends BaseApiService {
7116
7371
  `/forms/in-organization/${activeOrganizationId}/`,
7117
7372
  void 0,
7118
7373
  activeOrganizationId,
7119
- componentTypeId
7374
+ attachedTo && "componentTypeId" in attachedTo ? attachedTo.componentTypeId : void 0,
7375
+ attachedTo && "issueTypeId" in attachedTo ? attachedTo.issueTypeId : void 0
7120
7376
  );
7121
7377
  }
7122
- async addForCurrentUser(initialRevision, componentTypeId) {
7378
+ async addForCurrentUser(initialRevision, attachedTo) {
7123
7379
  const state = this.client.store.getState();
7124
7380
  const currentUser = state.userReducer.currentUser;
7125
- return await this.add(state, initialRevision, "/forms/my-forms/", currentUser.id, void 0, componentTypeId);
7381
+ return await this.add(
7382
+ state,
7383
+ initialRevision,
7384
+ "/forms/my-forms/",
7385
+ currentUser.id,
7386
+ void 0,
7387
+ attachedTo && "componentTypeId" in attachedTo ? attachedTo.componentTypeId : void 0,
7388
+ attachedTo && "issueTypeId" in attachedTo ? attachedTo.issueTypeId : void 0
7389
+ );
7126
7390
  }
7127
7391
  async createRevision(formId2, revision) {
7128
7392
  const offlineRevision = offline(revision);
@@ -8402,6 +8666,7 @@ class OvermapSDK {
8402
8666
  __publicField(this, "organizations", new OrganizationService(this));
8403
8667
  __publicField(this, "organizationAccess", new OrganizationAccessService(this));
8404
8668
  __publicField(this, "issues", new IssueService(this));
8669
+ __publicField(this, "issueTypes", new IssueTypeService(this));
8405
8670
  __publicField(this, "issueComments", new IssueCommentService(this));
8406
8671
  __publicField(this, "issueUpdates", new IssueUpdateService(this));
8407
8672
  __publicField(this, "workspaces", new WorkspaceService(this));
@@ -14844,7 +15109,7 @@ const FormBrowser = memo(
14844
15109
  }, [filter, maxResults, ownerFilter]);
14845
15110
  const userForms = useAppSelector(selectFilteredForms(ownerFilterOptions)) ?? [];
14846
15111
  const userFormMapping = useAppSelector(selectFormMapping);
14847
- const attachableUserForms = userForms.filter((form) => !form.component_type);
15112
+ const attachableUserForms = userForms.filter((form) => !form.component_type && !form.issue_type);
14848
15113
  const attachableUserFormMapping = Object.values(userFormMapping).filter(
14849
15114
  (form) => !form.component_type
14850
15115
  );
@@ -16298,6 +16563,7 @@ export {
16298
16563
  IssuePriority,
16299
16564
  IssueService,
16300
16565
  IssueStatus,
16566
+ IssueTypeService,
16301
16567
  IssueUpdateChange,
16302
16568
  IssueUpdateService,
16303
16569
  LicenseLevel,
@@ -16382,8 +16648,10 @@ export {
16382
16648
  addIssueAttachments,
16383
16649
  addIssueComment,
16384
16650
  addIssueComments,
16651
+ addIssueType,
16385
16652
  addIssueUpdate,
16386
16653
  addIssueUpdates,
16654
+ addIssues,
16387
16655
  addLicenses,
16388
16656
  addOrReplaceCategories,
16389
16657
  addOrReplaceIssueComment,
@@ -16400,6 +16668,8 @@ export {
16400
16668
  addToRecentIssues,
16401
16669
  addUsers,
16402
16670
  addWorkspace,
16671
+ agentReducer,
16672
+ agentSlice,
16403
16673
  areArraysEqual,
16404
16674
  authReducer,
16405
16675
  authSlice,
@@ -16495,6 +16765,8 @@ export {
16495
16765
  issueReducer,
16496
16766
  issueSlice,
16497
16767
  issueToSearchResult,
16768
+ issueTypeReducer,
16769
+ issueTypeSlice,
16498
16770
  licenseReducer,
16499
16771
  licenseSlice,
16500
16772
  linkStageToForm,
@@ -16553,8 +16825,10 @@ export {
16553
16825
  removeIssueAttachment,
16554
16826
  removeIssueComment,
16555
16827
  removeIssueComments,
16828
+ removeIssueType,
16556
16829
  removeIssueUpdate,
16557
16830
  removeIssueUpdates,
16831
+ removeIssues,
16558
16832
  removeOrganizationAccess,
16559
16833
  removeProjectAccess,
16560
16834
  removeProjectAccessesOfProject,
@@ -16636,6 +16910,7 @@ export {
16636
16910
  selectComponentsByType,
16637
16911
  selectComponentsFromComponentType,
16638
16912
  selectComponentsMapping,
16913
+ selectConversationId,
16639
16914
  selectCreateProjectType,
16640
16915
  selectCurrentUser,
16641
16916
  selectDeletedRequests,
@@ -16658,6 +16933,7 @@ export {
16658
16933
  selectForm,
16659
16934
  selectFormMapping,
16660
16935
  selectFormOfComponentType,
16936
+ selectFormOfIssueType,
16661
16937
  selectFormRevision,
16662
16938
  selectFormRevisionMapping,
16663
16939
  selectFormRevisions,
@@ -16666,6 +16942,7 @@ export {
16666
16942
  selectFormSubmissionAttachmentsMapping,
16667
16943
  selectFormSubmissions,
16668
16944
  selectFormSubmissionsByComponents,
16945
+ selectFormSubmissionsByFormRevisions,
16669
16946
  selectFormSubmissionsMapping,
16670
16947
  selectFormSubmissionsOfComponent,
16671
16948
  selectFormSubmissionsOfForm,
@@ -16684,9 +16961,15 @@ export {
16684
16961
  selectIssueAttachments,
16685
16962
  selectIssueCountOfCategory,
16686
16963
  selectIssueMapping,
16964
+ selectIssueType,
16965
+ selectIssueTypeMapping,
16966
+ selectIssueTypes,
16967
+ selectIssueTypesOfOrganization,
16687
16968
  selectIssueUpdateMapping,
16688
16969
  selectIssueUpdatesOfIssue,
16689
16970
  selectIssues,
16971
+ selectIssuesOfIssueType,
16972
+ selectIssuesOfIssueTypeCount,
16690
16973
  selectLatestFormRevisionByForm,
16691
16974
  selectLatestFormRevisionOfForm,
16692
16975
  selectLatestFormRevisionsOfComponentTypes,
@@ -16729,6 +17012,7 @@ export {
16729
17012
  selectRootDocuments,
16730
17013
  selectShowTooltips,
16731
17014
  selectSortedEmailDomains,
17015
+ selectSortedFormSubmissionsOfForm,
16732
17016
  selectSortedOrganizationLicenses,
16733
17017
  selectSortedOrganizationUsers,
16734
17018
  selectSortedProjectUsers,
@@ -16767,6 +17051,7 @@ export {
16767
17051
  setComponentTypeAttachments,
16768
17052
  setComponentTypes,
16769
17053
  setComponents,
17054
+ setConversationId,
16770
17055
  setCreateProjectType,
16771
17056
  setCurrentUser,
16772
17057
  setDocumentAttachments,
@@ -16788,6 +17073,8 @@ export {
16788
17073
  setIssueAttachments,
16789
17074
  setIssueComment,
16790
17075
  setIssueComments,
17076
+ setIssueType,
17077
+ setIssueTypes,
16791
17078
  setIssueUpdates,
16792
17079
  setIssues,
16793
17080
  setLicenses,
@@ -16839,6 +17126,7 @@ export {
16839
17126
  updateFormSubmissions,
16840
17127
  updateIssue,
16841
17128
  updateIssueAttachment,
17129
+ updateIssueType,
16842
17130
  updateLicense,
16843
17131
  updateOrCreateProject,
16844
17132
  updateOrganizationAccess,