@overmap-ai/core 1.0.48-menu-improvements.0 → 1.0.48-tanstack-table.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.
package/dist/sdk/sdk.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { AttachmentService, AuthService, CategoryService, ComponentService, ComponentStageCompletionService, ComponentStageService, ComponentTypeService, EmailVerificationService, FileService, IssueCommentService, IssueService, MainService, OrganizationAccessService, ProjectAccessService, ProjectFileService, ProjectService, UserFormService, UserFormSubmissionService, WorkspaceService, OrganizationService, EmailDomainsService, LicenseService, DocumentService, AgentService } from "./services";
1
+ import { AttachmentService, AuthService, CategoryService, ComponentService, ComponentStageCompletionService, ComponentStageService, ComponentTypeService, EmailVerificationService, FileService, IssueCommentService, IssueService, MainService, OrganizationAccessService, ProjectAccessService, ProjectFileService, ProjectService, UserFormService, UserFormSubmissionService, WorkspaceService, OrganizationService, EmailDomainsService, LicenseService, DocumentService, IssueUpdateService, AgentService } from "./services";
2
2
  import { ToolkitStore } from "@reduxjs/toolkit/dist/configureStore.js";
3
3
  import { RootState } from "../typings";
4
4
  export declare class OvermapSDK {
@@ -15,6 +15,7 @@ export declare class OvermapSDK {
15
15
  organizationAccess: OrganizationAccessService;
16
16
  issues: IssueService;
17
17
  issueComments: IssueCommentService;
18
+ issueUpdates: IssueUpdateService;
18
19
  workspaces: WorkspaceService;
19
20
  main: MainService;
20
21
  components: ComponentService;
@@ -2,8 +2,8 @@ import { BaseApiService } from "./BaseApiService";
2
2
  import { IssueComment, Payload, Submitted } from "../../typings";
3
3
  import { OptimisticModelResult } from "../typings";
4
4
  export declare class IssueCommentService extends BaseApiService {
5
- add(comment: Omit<Payload<IssueComment>, "author">): OptimisticModelResult<IssueComment>;
6
- refreshStore(): Promise<void>;
5
+ add(comment: Omit<Payload<IssueComment>, "author" | "submitted_at">): OptimisticModelResult<IssueComment>;
7
6
  update(comment: Submitted<IssueComment>): OptimisticModelResult<IssueComment>;
8
7
  remove(offline_id: string): Promise<undefined>;
8
+ refreshStore(): Promise<void>;
9
9
  }
@@ -0,0 +1,4 @@
1
+ import { BaseApiService } from "./BaseApiService";
2
+ export declare class IssueUpdateService extends BaseApiService {
3
+ refreshStore(): Promise<void>;
4
+ }
@@ -7,6 +7,7 @@ export * from "./ComponentStageCompletionService";
7
7
  export * from "./ComponentStageService";
8
8
  export * from "./ComponentTypeService";
9
9
  export * from "./IssueCommentService";
10
+ export * from "./IssueUpdateService";
10
11
  export * from "./IssueService";
11
12
  export * from "./MainService";
12
13
  export * from "./ProjectAccessService";
@@ -26,6 +26,7 @@ export declare const componentStageSlice: import("@reduxjs/toolkit").Slice<Compo
26
26
  }) => void;
27
27
  }, "componentStages">;
28
28
  export declare const selectStageMapping: (state: RootState) => Record<string, ComponentStage>;
29
+ export declare const selectStage: SelectorWithArgs<string, ComponentStage | undefined>;
29
30
  export declare const selectStages: (state: RootState) => ComponentStage[];
30
31
  export declare const selectStagesFromComponentTypeIds: SelectorWithArgs<string[], Record<string, ComponentStage[]>>;
31
32
  export declare const selectStagesFromComponentType: SelectorWithArgs<string, ComponentStage[]>;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="@redux-offline/redux-offline" />
2
2
  import { PayloadAction, Reducer } from "@reduxjs/toolkit";
3
- import { Created, Issue, IssueAttachment, IssueComment, RootState, SearchableRecentResult, SearchArgs, SearchResult, Selector, SelectorWithArgs, Stored, Submitted } from "../../typings";
3
+ import { Created, Issue, IssueAttachment, IssueComment, IssueUpdate, RootState, SearchableRecentResult, SearchArgs, SearchResult, Selector, SelectorWithArgs, Stored, Submitted } from "../../typings";
4
4
  import { IssueStatus } from "../../enums";
5
5
  interface RecentIssueId {
6
6
  offlineId: string;
@@ -10,6 +10,7 @@ export interface IssueState {
10
10
  issues: Record<string, Stored<Issue>>;
11
11
  attachments: Record<string, Stored<IssueAttachment>>;
12
12
  comments: Record<string, Stored<IssueComment>>;
13
+ updates: Record<string, Stored<IssueUpdate>>;
13
14
  visibleStatuses: IssueStatus[];
14
15
  visibleUserIds: (number | null)[] | null;
15
16
  recentIssueIds: RecentIssueId[];
@@ -28,6 +29,9 @@ export declare const issueSlice: import("@reduxjs/toolkit").Slice<IssueState, {
28
29
  payload: Created<IssueAttachment>[];
29
30
  type: string;
30
31
  }) => void;
32
+ setIssueUpdates: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: {
33
+ payload: Created<IssueUpdate>[];
34
+ }) => void;
31
35
  setActiveIssueId: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: {
32
36
  payload: string | null;
33
37
  }) => void;
@@ -42,6 +46,12 @@ export declare const issueSlice: import("@reduxjs/toolkit").Slice<IssueState, {
42
46
  payload: Submitted<IssueAttachment>[];
43
47
  type: string;
44
48
  }) => void;
49
+ addIssueUpdate: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: {
50
+ payload: Submitted<IssueUpdate>;
51
+ }) => void;
52
+ addIssueUpdates: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: {
53
+ payload: Submitted<IssueUpdate>[];
54
+ }) => void;
45
55
  updateIssue: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: {
46
56
  payload: Submitted<Partial<Issue>>;
47
57
  }) => void;
@@ -54,14 +64,20 @@ export declare const issueSlice: import("@reduxjs/toolkit").Slice<IssueState, {
54
64
  payload: string;
55
65
  type: string;
56
66
  }) => void;
67
+ removeIssueUpdate: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: PayloadAction<string>) => void;
68
+ removeIssueUpdates: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: PayloadAction<string[]>) => void;
57
69
  removeAttachmentsOfIssue: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: PayloadAction<string>) => void;
58
70
  setVisibleStatuses: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: PayloadAction<IssueStatus[]>) => void;
59
71
  setVisibleUserIds: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: {
60
72
  payload: (number | null)[];
61
73
  }) => void;
62
- setIssueComments: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: PayloadAction<Created<IssueComment>[]>) => void;
74
+ addIssueComment: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: PayloadAction<Submitted<IssueComment>>) => void;
75
+ addIssueComments: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: PayloadAction<Submitted<IssueComment>[]>) => void;
76
+ setIssueComment: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: PayloadAction<Stored<IssueComment>>) => void;
77
+ setIssueComments: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: PayloadAction<Stored<IssueComment>[]>) => void;
63
78
  addOrReplaceIssueComment: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: PayloadAction<Submitted<IssueComment>>) => void;
64
79
  removeIssueComment: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: PayloadAction<string>) => void;
80
+ removeIssueComments: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: PayloadAction<string[]>) => void;
65
81
  cleanRecentIssues: (state: import("immer/dist/internal.js").WritableDraft<IssueState>) => void;
66
82
  addToRecentIssues: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: {
67
83
  payload: string;
@@ -69,7 +85,7 @@ export declare const issueSlice: import("@reduxjs/toolkit").Slice<IssueState, {
69
85
  resetRecentIssues: (state: import("immer/dist/internal.js").WritableDraft<IssueState>) => void;
70
86
  removeRecentIssue: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: PayloadAction<string>) => void;
71
87
  }, "issues">;
72
- export declare const addIssueAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<IssueAttachment>, "issues/addIssueAttachment">, addIssueAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<IssueAttachment>[], "issues/addIssueAttachments">, addIssue: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<Issue>, "issues/addIssue">, addOrReplaceIssueComment: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<IssueComment>, "issues/addOrReplaceIssueComment">, addToRecentIssues: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "issues/addToRecentIssues">, cleanRecentIssues: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"issues/cleanRecentIssues">, removeIssueAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "issues/removeIssueAttachment">, removeAttachmentsOfIssue: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "issues/removeAttachmentsOfIssue">, removeIssue: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "issues/removeIssue">, removeIssueComment: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "issues/removeIssueComment">, removeRecentIssue: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "issues/removeRecentIssue">, resetRecentIssues: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"issues/resetRecentIssues">, setActiveIssueId: import("@reduxjs/toolkit").ActionCreatorWithPayload<string | null, "issues/setActiveIssueId">, setIssueAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<Created<IssueAttachment>[], "issues/setIssueAttachments">, setIssueComments: import("@reduxjs/toolkit").ActionCreatorWithPayload<Created<IssueComment>[], "issues/setIssueComments">, setIssues: import("@reduxjs/toolkit").ActionCreatorWithPayload<Created<Issue>[], "issues/setIssues">, setVisibleStatuses: import("@reduxjs/toolkit").ActionCreatorWithPayload<IssueStatus[], "issues/setVisibleStatuses">, setVisibleUserIds: import("@reduxjs/toolkit").ActionCreatorWithPayload<(number | null)[], "issues/setVisibleUserIds">, updateIssueAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<IssueAttachment>, "issues/updateIssueAttachment">, updateIssue: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<Partial<Issue>>, "issues/updateIssue">;
88
+ export declare const addIssueAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<IssueAttachment>, "issues/addIssueAttachment">, addIssueAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<IssueAttachment>[], "issues/addIssueAttachments">, addIssue: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<Issue>, "issues/addIssue">, addIssueUpdate: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<IssueUpdate>, "issues/addIssueUpdate">, addIssueUpdates: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<IssueUpdate>[], "issues/addIssueUpdates">, addOrReplaceIssueComment: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<IssueComment>, "issues/addOrReplaceIssueComment">, addToRecentIssues: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "issues/addToRecentIssues">, cleanRecentIssues: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"issues/cleanRecentIssues">, removeIssueAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "issues/removeIssueAttachment">, removeAttachmentsOfIssue: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "issues/removeAttachmentsOfIssue">, removeIssue: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "issues/removeIssue">, removeIssueUpdate: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "issues/removeIssueUpdate">, removeIssueUpdates: import("@reduxjs/toolkit").ActionCreatorWithPayload<string[], "issues/removeIssueUpdates">, removeRecentIssue: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "issues/removeRecentIssue">, resetRecentIssues: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"issues/resetRecentIssues">, setActiveIssueId: import("@reduxjs/toolkit").ActionCreatorWithPayload<string | null, "issues/setActiveIssueId">, setIssueAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<Created<IssueAttachment>[], "issues/setIssueAttachments">, setIssueUpdates: import("@reduxjs/toolkit").ActionCreatorWithPayload<Created<IssueUpdate>[], "issues/setIssueUpdates">, setIssues: import("@reduxjs/toolkit").ActionCreatorWithPayload<Created<Issue>[], "issues/setIssues">, setVisibleStatuses: import("@reduxjs/toolkit").ActionCreatorWithPayload<IssueStatus[], "issues/setVisibleStatuses">, setVisibleUserIds: import("@reduxjs/toolkit").ActionCreatorWithPayload<(number | null)[], "issues/setVisibleUserIds">, updateIssueAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<IssueAttachment>, "issues/updateIssueAttachment">, updateIssue: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<Partial<Issue>>, "issues/updateIssue">, addIssueComment: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<IssueComment>, "issues/addIssueComment">, addIssueComments: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<IssueComment>[], "issues/addIssueComments">, setIssueComment: import("@reduxjs/toolkit").ActionCreatorWithPayload<Stored<IssueComment>, "issues/setIssueComment">, setIssueComments: import("@reduxjs/toolkit").ActionCreatorWithPayload<Stored<IssueComment>[], "issues/setIssueComments">, removeIssueComment: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "issues/removeIssueComment">, removeIssueComments: import("@reduxjs/toolkit").ActionCreatorWithPayload<string[], "issues/removeIssueComments">;
73
89
  export interface IssueFilterArgs {
74
90
  filterByAssignedTo: boolean;
75
91
  filterByStatus: boolean;
@@ -87,6 +103,8 @@ export declare const selectIssueAttachments: Selector<Stored<IssueAttachment>[]>
87
103
  export declare const selectPhotoAttachmentsOfIssue: SelectorWithArgs<string, Stored<IssueAttachment>[]>;
88
104
  export declare const selectCommentMapping: (state: RootState) => Record<string, Stored<IssueComment>>;
89
105
  export declare const selectCommentsOfIssue: (args: string) => (state: RootState) => Stored<IssueComment>[];
106
+ export declare const selectIssueUpdateMapping: (state: RootState) => Record<string, Stored<IssueUpdate>>;
107
+ export declare const selectIssueUpdatesOfIssue: (args: string) => (state: RootState) => Stored<IssueUpdate>[];
90
108
  export declare const selectAttachmentsOfIssue: (args: string) => (state: RootState) => Stored<IssueAttachment>[];
91
109
  export declare const selectAttachmentsOfIssueByType: (args: string) => (state: RootState) => {
92
110
  fileAttachments: Stored<IssueAttachment>[];
@@ -5,6 +5,8 @@ export interface Attachment extends OfflineModel, UploadedFileModel {
5
5
  description?: string;
6
6
  file_name: string;
7
7
  file_type: string;
8
+ submitted_at: string;
9
+ created_by: number;
8
10
  }
9
11
  export interface IssueAttachment extends Attachment, UploadedFileModel {
10
12
  issue: string;
@@ -20,7 +22,7 @@ export interface ProjectAttachment extends Attachment, UploadedFileModel {
20
22
  }
21
23
  /** to get an AttachmentPayload for a specific type, pass in the given AttachmentType
22
24
  * ex. AttachmentPayload<IssueAttachment> */
23
- export type AttachmentPayload<TAttachment> = Omit<TAttachment, "file"> & {
25
+ export type AttachmentPayload<TAttachment> = Omit<TAttachment, "file" | "submitted_at" | "created_by"> & {
24
26
  file: MaybeObjectURL<File>;
25
27
  };
26
28
  export interface ProfilePic extends UploadedFileModel {
@@ -3,11 +3,13 @@ import { IssuePriority, IssueStatus } from "../../enums";
3
3
  import { WorkspaceIndexedModel } from "./workspace";
4
4
  import { Marker } from "./geo";
5
5
  import { CreatedUserForm, SubmittedUserForm, UserForm } from "./forms";
6
+ import { User } from "./users";
7
+ import { CSSColor } from "../colors";
6
8
  /**
7
9
  * Represents a model instance that has been submitted to the backend. Some properties (depending on which model, but in
8
10
  * all cases, the `offline_id`) are guaranteed to be set.
9
11
  */
10
- export type Submitted<TModel> = Offline<TModel> & (TModel extends Issue ? SubmittedIssue : TModel extends IssueComment ? SubmittedIssueComment : TModel extends UserForm ? SubmittedUserForm : Omit<TModel, "created_at" | "created_by" | "id">);
12
+ export type Submitted<TModel> = Offline<TModel> & (TModel extends Issue ? SubmittedIssue : TModel extends UserForm ? SubmittedUserForm : Omit<TModel, "created_at" | "created_by" | "id">);
11
13
  /**
12
14
  * Represents a model instance that has been submitted to the backend, accepted, then downloaded. Created models
13
15
  * typically have additional properties that are only known once it has been processed and accepted by the API, such as
@@ -62,6 +64,7 @@ export interface IssueComment extends OfflineModel {
62
64
  content: string;
63
65
  author?: number;
64
66
  created_at?: string;
67
+ submitted_at: string;
65
68
  }
66
69
  export interface SubmittedIssueComment {
67
70
  created_at: Exclude<IssueComment["created_at"], undefined>;
@@ -71,3 +74,34 @@ export interface CreatedIssueComment {
71
74
  created_at: Exclude<IssueComment["created_at"], undefined>;
72
75
  }
73
76
  export type IssueCommentPayload = Omit<IssueComment, "author" | "created_at" | "offline_id">;
77
+ export declare enum IssueUpdateChange {
78
+ STATUS = "status",
79
+ PRIORITY = "priority",
80
+ CATEGORY = "category",
81
+ DESCRIPTION = "description",
82
+ TITLE = "title",
83
+ ASSIGNED_TO = "assigned_to",
84
+ DUE_DATE = "due_date"
85
+ }
86
+ export interface IssueUpdateChangeTypes {
87
+ status: IssueStatus;
88
+ priority: IssuePriority;
89
+ category: {
90
+ name: string;
91
+ color: CSSColor;
92
+ offline_id: OfflineModel["offline_id"];
93
+ } | null;
94
+ description: string;
95
+ title: string;
96
+ assigned_to: {
97
+ full_name: string;
98
+ id: User["id"];
99
+ } | null;
100
+ due_date: string;
101
+ }
102
+ export interface IssueUpdate extends OfflineModel {
103
+ submitted_at: string;
104
+ created_by: User["id"];
105
+ issue: OfflineModel["offline_id"];
106
+ changes: Partial<Record<IssueUpdateChange, IssueUpdateChangeTypes[IssueUpdateChange]>>;
107
+ }
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Core functionality for Overmap",
4
4
  "author": "Wôrdn Inc.",
5
5
  "license": "UNLICENSED",
6
- "version": "1.0.48-menu-improvements.0",
6
+ "version": "1.0.48-tanstack-table.0",
7
7
  "type": "module",
8
8
  "main": "dist/overmap-core.umd.cjs",
9
9
  "module": "dist/overmap-core.js",
@@ -51,7 +51,7 @@
51
51
  "devDependencies": {
52
52
  "@esbuild-plugins/node-globals-polyfill": "^0.2.3",
53
53
  "@esbuild-plugins/node-modules-polyfill": "^0.2.2",
54
- "@overmap-ai/blocks": "^1.0.29-alpha.0",
54
+ "@overmap-ai/blocks": "^1.0.29-alpha.1",
55
55
  "@rollup/plugin-commonjs": "^25.0.4",
56
56
  "@storybook/addon-essentials": "7.3.2",
57
57
  "@storybook/addon-interactions": "7.3.2",
@@ -64,6 +64,7 @@
64
64
  "@testing-library/dom": "^9.3.4",
65
65
  "@testing-library/react": "^14.1.2",
66
66
  "@testing-library/user-event": "^14.5.2",
67
+ "@tiptap/core": "^2.4.0",
67
68
  "@types/color": "^3.0.4",
68
69
  "@types/file-saver": "^2.0.7",
69
70
  "@types/jwt-decode": "^3.1.0",
@@ -109,15 +110,14 @@
109
110
  "vite": "^4.4.5",
110
111
  "vite-plugin-dts": "^3.5.2",
111
112
  "vite-plugin-externalize-deps": "^0.7.0",
112
- "vitest": "^1.2.1",
113
- "@tiptap/core": "^2.4.0"
113
+ "vitest": "^1.2.1"
114
114
  },
115
115
  "peerDependencies": {
116
116
  "@overmap-ai/blocks": "1.0.8",
117
+ "@tiptap/core": "^2.4.0",
117
118
  "leaflet": "^1.9.0",
118
119
  "react": "^18.2.0",
119
120
  "react-dom": "^18.2.0",
120
- "@tiptap/core": "^2.4.0",
121
121
  "react-redux": "^8.1.2"
122
122
  },
123
123
  "resolutions": {