@overmap-ai/core 1.0.51-add-submitted-at-to-form-revisions.1 → 1.0.51-attachment-creation-flows.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.
Files changed (37) hide show
  1. package/dist/forms/renderer/FormSubmissionBrowser/FormSubmissionBrowser.d.ts +5 -5
  2. package/dist/forms/renderer/FormSubmissionViewer/FormSubmissionViewer.d.ts +3 -3
  3. package/dist/overmap-core.js +1231 -500
  4. package/dist/overmap-core.js.map +1 -1
  5. package/dist/overmap-core.umd.cjs +1231 -500
  6. package/dist/overmap-core.umd.cjs.map +1 -1
  7. package/dist/sdk/sdk.d.ts +6 -1
  8. package/dist/sdk/services/BaseAttachmentService.d.ts +31 -0
  9. package/dist/sdk/services/ComponentAttachmentService.d.ts +10 -0
  10. package/dist/sdk/services/ComponentTypeAttachmentService.d.ts +10 -0
  11. package/dist/sdk/services/DocumentAttachmentService.d.ts +10 -0
  12. package/dist/sdk/services/IssueAttachmentService.d.ts +10 -0
  13. package/dist/sdk/services/ProjectAttachmentService.d.ts +10 -0
  14. package/dist/sdk/services/UserFormSubmissionService.d.ts +9 -2
  15. package/dist/sdk/services/index.d.ts +5 -0
  16. package/dist/store/slices/categorySlice.d.ts +3 -1
  17. package/dist/store/slices/componentSlice.d.ts +15 -7
  18. package/dist/store/slices/componentTypeSlice.d.ts +16 -8
  19. package/dist/store/slices/documentSlice.d.ts +13 -3
  20. package/dist/store/slices/formRevisionSlice.d.ts +65 -0
  21. package/dist/store/slices/formSlice.d.ts +110 -0
  22. package/dist/store/slices/formSubmissionSlice.d.ts +47 -0
  23. package/dist/store/slices/index.d.ts +3 -1
  24. package/dist/store/slices/issueSlice.d.ts +36 -22
  25. package/dist/store/slices/projectFileSlice.d.ts +3 -1
  26. package/dist/store/slices/projectSlice.d.ts +12 -3
  27. package/dist/store/slices/utils.d.ts +4 -2
  28. package/dist/store/slices/workspaceSlice.d.ts +3 -1
  29. package/dist/store/store.d.ts +10 -4
  30. package/dist/typings/files.d.ts +11 -1
  31. package/dist/typings/models/attachments.d.ts +15 -11
  32. package/dist/typings/models/base.d.ts +7 -0
  33. package/dist/typings/models/forms.d.ts +6 -11
  34. package/dist/utils/file.d.ts +2 -0
  35. package/dist/utils/forms.d.ts +2 -0
  36. package/package.json +1 -1
  37. package/dist/store/slices/userFormSlice.d.ts +0 -145
@@ -25,10 +25,6 @@ export declare const issueSlice: import("@reduxjs/toolkit").Slice<IssueState, {
25
25
  setIssues: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: {
26
26
  payload: Created<Issue>[];
27
27
  }) => void;
28
- setIssueAttachments: (state: IssueState, action: {
29
- payload: Created<IssueAttachment>[];
30
- type: string;
31
- }) => void;
32
28
  setIssueUpdates: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: {
33
29
  payload: Created<IssueUpdate>[];
34
30
  }) => void;
@@ -38,14 +34,6 @@ export declare const issueSlice: import("@reduxjs/toolkit").Slice<IssueState, {
38
34
  addIssue: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: {
39
35
  payload: Submitted<Issue>;
40
36
  }) => void;
41
- addIssueAttachment: (state: IssueState, action: {
42
- payload: Submitted<IssueAttachment>;
43
- type: string;
44
- }) => void;
45
- addIssueAttachments: (state: IssueState, action: {
46
- payload: Submitted<IssueAttachment>[];
47
- type: string;
48
- }) => void;
49
37
  addIssueUpdate: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: {
50
38
  payload: Submitted<IssueUpdate>;
51
39
  }) => void;
@@ -55,15 +43,7 @@ export declare const issueSlice: import("@reduxjs/toolkit").Slice<IssueState, {
55
43
  updateIssue: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: {
56
44
  payload: Submitted<Partial<Issue>>;
57
45
  }) => void;
58
- updateIssueAttachment: (state: IssueState, action: {
59
- payload: Submitted<IssueAttachment>;
60
- type: string;
61
- }) => void;
62
46
  removeIssue: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: PayloadAction<string>) => void;
63
- removeIssueAttachment: (state: IssueState, action: {
64
- payload: string;
65
- type: string;
66
- }) => void;
67
47
  removeIssueUpdate: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: PayloadAction<string>) => void;
68
48
  removeIssueUpdates: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: PayloadAction<string[]>) => void;
69
49
  removeAttachmentsOfIssue: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: PayloadAction<string>) => void;
@@ -84,8 +64,40 @@ export declare const issueSlice: import("@reduxjs/toolkit").Slice<IssueState, {
84
64
  }) => void;
85
65
  resetRecentIssues: (state: import("immer/dist/internal.js").WritableDraft<IssueState>) => void;
86
66
  removeRecentIssue: (state: import("immer/dist/internal.js").WritableDraft<IssueState>, action: PayloadAction<string>) => void;
67
+ setIssueAttachment: (state: IssueState, action: {
68
+ payload: Stored<IssueAttachment>;
69
+ type: string;
70
+ }) => void;
71
+ setIssueAttachments: (state: IssueState, action: {
72
+ payload: Stored<IssueAttachment>[];
73
+ type: string;
74
+ }) => void;
75
+ addIssueAttachment: (state: IssueState, action: {
76
+ payload: Submitted<IssueAttachment>;
77
+ type: string;
78
+ }) => void;
79
+ addIssueAttachments: (state: IssueState, action: {
80
+ payload: Submitted<IssueAttachment>[];
81
+ type: string;
82
+ }) => void;
83
+ updateIssueAttachment: (state: IssueState, action: {
84
+ payload: Submitted<IssueAttachment>;
85
+ type: string;
86
+ }) => void;
87
+ updateIssueAttachments: (state: IssueState, action: {
88
+ payload: Submitted<IssueAttachment>[];
89
+ type: string;
90
+ }) => void;
91
+ removeIssueAttachment: (state: IssueState, action: {
92
+ payload: string;
93
+ type: string;
94
+ }) => void;
95
+ removeIssueAttachments: (state: IssueState, action: {
96
+ payload: string[];
97
+ type: string;
98
+ }) => void;
87
99
  }, "issues">;
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">;
100
+ export declare const 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">, 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">, 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">, updateIssue: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<Partial<Issue>>, "issues/updateIssue">, setIssueAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<Stored<IssueAttachment>, "issues/setIssueAttachment">, setIssueAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<Stored<IssueAttachment>[], "issues/setIssueAttachments">, addIssueAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<IssueAttachment>, "issues/addIssueAttachment">, addIssueAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<IssueAttachment>[], "issues/addIssueAttachments">, updateIssueAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<IssueAttachment>, "issues/updateIssueAttachment">, updateIssueAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<IssueAttachment>[], "issues/updateIssueAttachments">, removeIssueAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "issues/removeIssueAttachment">, removeIssueAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<string[], "issues/removeIssueAttachments">, 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">;
89
101
  export interface IssueFilterArgs {
90
102
  filterByAssignedTo: boolean;
91
103
  filterByStatus: boolean;
@@ -132,8 +144,10 @@ export declare const selectAllAttachments: ((state: import("redux").EmptyObject
132
144
  projectFileReducer: import('..').ProjectFileState;
133
145
  rehydratedReducer: import('..').RehydratedState;
134
146
  settingReducer: import('..').SettingState;
135
- userFormReducer: import('..').UserFormState;
147
+ formReducer: import('..').FormState;
136
148
  userReducer: import('..').UserState;
149
+ formRevisionReducer: import('..').FormRevisionState;
150
+ formSubmissionReducer: import('..').FormSubmissionState;
137
151
  workspaceReducer: import("./workspaceSlice").WorkspaceState;
138
152
  emailDomainsReducer: import('..').EmailDomainState;
139
153
  licenseReducer: import('..').LicenseState;
@@ -68,8 +68,10 @@ export declare const selectProjectFiles: ((state: import("redux").EmptyObject &
68
68
  projectFileReducer: ProjectFileState;
69
69
  rehydratedReducer: import('..').RehydratedState;
70
70
  settingReducer: import('..').SettingState;
71
- userFormReducer: import('..').UserFormState;
71
+ formReducer: import('..').FormState;
72
72
  userReducer: import('..').UserState;
73
+ formRevisionReducer: import('..').FormRevisionState;
74
+ formSubmissionReducer: import('..').FormSubmissionState;
73
75
  workspaceReducer: import('..').WorkspaceState;
74
76
  emailDomainsReducer: import('..').EmailDomainState;
75
77
  licenseReducer: import('..').LicenseState;
@@ -1,5 +1,5 @@
1
1
  import { Reducer } from "@reduxjs/toolkit";
2
- import { Project, ProjectAttachment, ProjectType, RootState, Selector, Stored, User } from "../../typings";
2
+ import { Project, ProjectAttachment, ProjectType, RootState, Selector, SelectorWithArgs, Stored, User } from "../../typings";
3
3
  export interface ProjectState {
4
4
  projects: Record<number, Project>;
5
5
  activeProjectId: number | null;
@@ -36,8 +36,12 @@ export declare const projectSlice: import("@reduxjs/toolkit").Slice<ProjectState
36
36
  addActiveProjectFormSubmissionsCount: (state: import("immer/dist/internal.js").WritableDraft<ProjectState>, action: {
37
37
  payload: number;
38
38
  }) => void;
39
+ setProjectAttachment: (state: ProjectState, action: {
40
+ payload: Stored<ProjectAttachment>;
41
+ type: string;
42
+ }) => void;
39
43
  setProjectAttachments: (state: ProjectState, action: {
40
- payload: import('../../typings/models/issues').Created<ProjectAttachment>[];
44
+ payload: Stored<ProjectAttachment>[];
41
45
  type: string;
42
46
  }) => void;
43
47
  addProjectAttachment: (state: ProjectState, action: {
@@ -52,6 +56,10 @@ export declare const projectSlice: import("@reduxjs/toolkit").Slice<ProjectState
52
56
  payload: import('../../typings/models/issues').Submitted<ProjectAttachment>;
53
57
  type: string;
54
58
  }) => void;
59
+ updateProjectAttachments: (state: ProjectState, action: {
60
+ payload: import('../../typings/models/issues').Submitted<ProjectAttachment>[];
61
+ type: string;
62
+ }) => void;
55
63
  removeProjectAttachment: (state: ProjectState, action: {
56
64
  payload: string;
57
65
  type: string;
@@ -61,7 +69,7 @@ export declare const projectSlice: import("@reduxjs/toolkit").Slice<ProjectState
61
69
  type: string;
62
70
  }) => void;
63
71
  }, "projects">;
64
- export declare const setProjects: import("@reduxjs/toolkit").ActionCreatorWithPayload<Project[], "projects/setProjects">, updateOrCreateProject: import("@reduxjs/toolkit").ActionCreatorWithPayload<Project, "projects/updateOrCreateProject">, addOrReplaceProjects: import("@reduxjs/toolkit").ActionCreatorWithPayload<Project[], "projects/updateOrCreateProjects">, setActiveProjectId: import("@reduxjs/toolkit").ActionCreatorWithPayload<number | null, "projects/setActiveProjectId">, setCreateProjectType: import("@reduxjs/toolkit").ActionCreatorWithPayload<ProjectType, "projects/setCreateProjectType">, deleteProject: import("@reduxjs/toolkit").ActionCreatorWithPayload<Project, "projects/deleteProject">, acceptProjectInvite: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "projects/acceptProjectInvite">, addActiveProjectIssuesCount: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "projects/addActiveProjectIssuesCount">, addActiveProjectFormSubmissionsCount: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "projects/addActiveProjectFormSubmissionsCount">, setProjectAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<import('../../typings/models/issues').Created<ProjectAttachment>[], "projects/setProjectAttachments">, addProjectAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<import('../../typings/models/issues').Submitted<ProjectAttachment>, "projects/addProjectAttachment">, addProjectAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<import('../../typings/models/issues').Submitted<ProjectAttachment>[], "projects/addProjectAttachments">, updateProjectAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<import('../../typings/models/issues').Submitted<ProjectAttachment>, "projects/updateProjectAttachment">, removeProjectAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "projects/removeProjectAttachment">, removeProjectAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<string[], "projects/removeProjectAttachments">;
72
+ export declare const setProjects: import("@reduxjs/toolkit").ActionCreatorWithPayload<Project[], "projects/setProjects">, updateOrCreateProject: import("@reduxjs/toolkit").ActionCreatorWithPayload<Project, "projects/updateOrCreateProject">, addOrReplaceProjects: import("@reduxjs/toolkit").ActionCreatorWithPayload<Project[], "projects/updateOrCreateProjects">, setActiveProjectId: import("@reduxjs/toolkit").ActionCreatorWithPayload<number | null, "projects/setActiveProjectId">, setCreateProjectType: import("@reduxjs/toolkit").ActionCreatorWithPayload<ProjectType, "projects/setCreateProjectType">, deleteProject: import("@reduxjs/toolkit").ActionCreatorWithPayload<Project, "projects/deleteProject">, acceptProjectInvite: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "projects/acceptProjectInvite">, addActiveProjectIssuesCount: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "projects/addActiveProjectIssuesCount">, addActiveProjectFormSubmissionsCount: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "projects/addActiveProjectFormSubmissionsCount">, setProjectAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<Stored<ProjectAttachment>, "projects/setProjectAttachment">, setProjectAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<Stored<ProjectAttachment>[], "projects/setProjectAttachments">, addProjectAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<import('../../typings/models/issues').Submitted<ProjectAttachment>, "projects/addProjectAttachment">, addProjectAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<import('../../typings/models/issues').Submitted<ProjectAttachment>[], "projects/addProjectAttachments">, updateProjectAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<import('../../typings/models/issues').Submitted<ProjectAttachment>, "projects/updateProjectAttachment">, updateProjectAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<import('../../typings/models/issues').Submitted<ProjectAttachment>[], "projects/updateProjectAttachments">, removeProjectAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "projects/removeProjectAttachment">, removeProjectAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<string[], "projects/removeProjectAttachments">;
65
73
  export declare const selectProjects: Selector<Record<number, Project>>;
66
74
  export declare const selectActiveProjectId: (state: RootState) => number | null;
67
75
  export declare const selectActiveProject: (state: RootState) => Project | null;
@@ -75,6 +83,7 @@ export declare const selectProjectsWithAccess: Selector<Project[]>;
75
83
  export declare const selectSortedProjectUsers: Selector<User[]>;
76
84
  export declare const selectProjectAttachmentMapping: (state: RootState) => Record<string, Stored<ProjectAttachment>>;
77
85
  export declare const selectAllProjectAttachments: Selector<Stored<ProjectAttachment>[]>;
86
+ export declare const selectProjectAttachment: SelectorWithArgs<string, ProjectAttachment>;
78
87
  export declare const selectAttachmentsOfProject: (args: number) => (state: RootState) => Stored<ProjectAttachment>[];
79
88
  export declare const selectAttachmentsOfProjectByType: (args: number) => (state: RootState) => {
80
89
  fileAttachments: Stored<ProjectAttachment>[];
@@ -1,12 +1,14 @@
1
1
  import { PayloadAction } from "@reduxjs/toolkit";
2
- import { Created, Stored, Submitted } from "../../typings";
2
+ import { Stored, Submitted } from "../../typings";
3
3
  interface AttachmentState<TState> {
4
4
  attachments: Record<string, Stored<TState>>;
5
5
  }
6
- export declare function setAttachments<TAttachment, TState extends AttachmentState<TAttachment>>(state: TState, action: PayloadAction<Created<TAttachment>[]>): void;
6
+ export declare function setAttachment<TAttachment, TState extends AttachmentState<TAttachment>>(state: TState, action: PayloadAction<Stored<TAttachment>>): void;
7
+ export declare function setAttachments<TAttachment, TState extends AttachmentState<TAttachment>>(state: TState, action: PayloadAction<Stored<TAttachment>[]>): void;
7
8
  export declare function addAttachment<TAttachment, TState extends AttachmentState<TAttachment>>(state: TState, action: PayloadAction<Submitted<TAttachment>>): void;
8
9
  export declare function addAttachments<TAttachment, TState extends AttachmentState<TAttachment>>(state: TState, action: PayloadAction<Submitted<TAttachment>[]>): void;
9
10
  export declare function updateAttachment<TAttachment, TState extends AttachmentState<TAttachment>>(state: TState, action: PayloadAction<Submitted<TAttachment>>): void;
11
+ export declare function updateAttachments<TAttachment, TState extends AttachmentState<TAttachment>>(state: TState, action: PayloadAction<Submitted<TAttachment>[]>): void;
10
12
  export declare function removeAttachment<TAttachment, TState extends AttachmentState<TAttachment>>(state: TState, action: PayloadAction<string>): void;
11
13
  export declare function removeAttachments<TAttachment, TState extends AttachmentState<TAttachment>>(state: TState, action: PayloadAction<string[]>): void;
12
14
  export {};
@@ -46,8 +46,10 @@ export declare const selectWorkspaces: ((state: import("redux").EmptyObject & {
46
46
  projectFileReducer: import('..').ProjectFileState;
47
47
  rehydratedReducer: import('..').RehydratedState;
48
48
  settingReducer: import('..').SettingState;
49
- userFormReducer: import('..').UserFormState;
49
+ formReducer: import('..').FormState;
50
50
  userReducer: import('..').UserState;
51
+ formRevisionReducer: import('..').FormRevisionState;
52
+ formSubmissionReducer: import('..').FormSubmissionState;
51
53
  workspaceReducer: WorkspaceState;
52
54
  emailDomainsReducer: import('..').EmailDomainState;
53
55
  licenseReducer: import('..').LicenseState;
@@ -3,7 +3,7 @@ import { AnyAction, Reducer } from "redux";
3
3
  import { Config, OfflineAction, OfflineMetadata, OfflineState } from "@redux-offline/redux-offline/lib/types";
4
4
  import request from "superagent";
5
5
  import { type OfflineMetaEffect, type OvermapSDK, RequestDetails } from "../sdk";
6
- import { AuthState, CategoryState, ComponentStageCompletionState, ComponentStageState, ComponentState, ComponentTypeState, DocumentState, EmailDomainState, FileState, IssueState, LicenseState, MapState, OrganizationAccessState, OrganizationState, OutboxState, ProjectAccessState, ProjectFileState, ProjectState, RehydratedState, SettingState, UserFormState, UserState, WorkspaceState } from "./slices";
6
+ import { AuthState, CategoryState, ComponentStageCompletionState, ComponentStageState, ComponentState, ComponentTypeState, DocumentState, EmailDomainState, FileState, IssueState, LicenseState, MapState, OrganizationAccessState, OrganizationState, OutboxState, ProjectAccessState, ProjectFileState, ProjectState, RehydratedState, SettingState, FormState, FormRevisionState, FormSubmissionState, UserState, WorkspaceState } from "./slices";
7
7
  import { VersioningState } from "./slices/versioningSlice";
8
8
  import { RootState } from "../typings";
9
9
  export declare const overmapReducers: {
@@ -25,8 +25,10 @@ export declare const overmapReducers: {
25
25
  projectFileReducer: Reducer<ProjectFileState>;
26
26
  rehydratedReducer: Reducer<RehydratedState>;
27
27
  settingReducer: Reducer<SettingState>;
28
- userFormReducer: Reducer<UserFormState>;
28
+ formReducer: Reducer<FormState>;
29
29
  userReducer: Reducer<UserState>;
30
+ formRevisionReducer: Reducer<FormRevisionState>;
31
+ formSubmissionReducer: Reducer<FormSubmissionState>;
30
32
  workspaceReducer: Reducer<WorkspaceState>;
31
33
  emailDomainsReducer: Reducer<EmailDomainState>;
32
34
  licenseReducer: Reducer<LicenseState>;
@@ -51,8 +53,10 @@ export declare const overmapReducer: Reducer<import("redux").CombinedState<{
51
53
  projectFileReducer: ProjectFileState;
52
54
  rehydratedReducer: RehydratedState;
53
55
  settingReducer: SettingState;
54
- userFormReducer: UserFormState;
56
+ formReducer: FormState;
55
57
  userReducer: UserState;
58
+ formRevisionReducer: FormRevisionState;
59
+ formSubmissionReducer: FormSubmissionState;
56
60
  workspaceReducer: WorkspaceState;
57
61
  emailDomainsReducer: EmailDomainState;
58
62
  licenseReducer: LicenseState;
@@ -95,8 +99,10 @@ export declare const defaultStore: import("@reduxjs/toolkit/dist/configureStore"
95
99
  projectFileReducer: ProjectFileState;
96
100
  rehydratedReducer: RehydratedState;
97
101
  settingReducer: SettingState;
98
- userFormReducer: UserFormState;
102
+ formReducer: FormState;
99
103
  userReducer: UserState;
104
+ formRevisionReducer: FormRevisionState;
105
+ formSubmissionReducer: FormSubmissionState;
100
106
  workspaceReducer: WorkspaceState;
101
107
  emailDomainsReducer: EmailDomainState;
102
108
  licenseReducer: LicenseState;
@@ -5,7 +5,17 @@ export type MaybeObjectURL<T> = T & {
5
5
  * Represents a file model that has been uploaded to the backend.
6
6
  * A corresponding abstract model exists in the backend (FileModelMixin).
7
7
  */
8
- export type UploadedFileModel = MaybeObjectURL<{
8
+ export type FileModel = MaybeObjectURL<{
9
9
  file_sha1: string;
10
10
  file: string;
11
11
  }>;
12
+ export interface FileWithNameModel extends FileModel {
13
+ file_name: string;
14
+ }
15
+ /** the attributes needed to generate a presigned url for a file that is being attempted to be uploaded */
16
+ export interface FileUploadPayload {
17
+ sha1: string;
18
+ extension: string;
19
+ file_type: string;
20
+ size: number;
21
+ }
@@ -1,34 +1,38 @@
1
1
  import { OfflineModel } from "./base";
2
- import { MaybeObjectURL, UploadedFileModel } from "../files";
2
+ import { MaybeObjectURL, FileModel, FileWithNameModel } from "../files";
3
3
  import { Project } from "./projects";
4
4
  import { ProjectDocument } from "./documents";
5
- export interface Attachment extends OfflineModel, UploadedFileModel {
5
+ export interface Attachment extends OfflineModel, FileWithNameModel {
6
6
  description?: string;
7
- file_name: string;
8
7
  file_type: string;
9
8
  submitted_at: string;
10
9
  created_by: number;
11
10
  }
12
- export interface IssueAttachment extends Attachment, UploadedFileModel {
11
+ export interface IssueAttachment extends Attachment {
13
12
  issue: string;
14
13
  }
15
- export interface ComponentAttachment extends Attachment, UploadedFileModel {
14
+ export interface ComponentAttachment extends Attachment {
16
15
  component: string;
17
16
  }
18
- export interface ComponentTypeAttachment extends Attachment, UploadedFileModel {
17
+ export interface ComponentTypeAttachment extends Attachment {
19
18
  component_type: string;
20
19
  }
21
- export interface ProjectAttachment extends Attachment, UploadedFileModel {
20
+ export interface ProjectAttachment extends Attachment {
22
21
  project: Project["id"];
23
22
  }
24
- export interface DocumentAttachment extends Attachment, UploadedFileModel {
23
+ export interface DocumentAttachment extends Attachment {
25
24
  document: ProjectDocument["offline_id"];
26
25
  }
26
+ export declare enum AttachmentModel {
27
+ Issue = "issue",
28
+ Component = "component",
29
+ ComponentType = "component_type",
30
+ Project = "project",
31
+ Document = "document"
32
+ }
27
33
  /** to get an AttachmentPayload for a specific type, pass in the given AttachmentType
28
34
  * ex. AttachmentPayload<IssueAttachment> */
29
35
  export type AttachmentPayload<TAttachment> = Omit<TAttachment, "file" | "submitted_at" | "created_by"> & {
30
36
  file: MaybeObjectURL<File>;
31
37
  };
32
- export interface ProfilePic extends UploadedFileModel {
33
- file: string;
34
- }
38
+ export type ProfilePic = FileModel;
@@ -4,6 +4,13 @@ export interface Model {
4
4
  export interface OfflineModel extends Model {
5
5
  offline_id: string;
6
6
  }
7
+ export interface SubmittedAtModel extends Model {
8
+ submitted_at: string;
9
+ }
10
+ export interface TimestampedModel extends Model {
11
+ created_at: string;
12
+ updated_at: string;
13
+ }
7
14
  export type Offline<T> = T & {
8
15
  offline_id: string;
9
16
  };
@@ -1,6 +1,6 @@
1
- import { OfflineModel, Payload } from "./base";
1
+ import { OfflineModel, Payload, SubmittedAtModel } from "./base";
2
2
  import { BaseSerializedObject, FieldValue, ISerializedField } from "../../forms";
3
- import { UploadedFileModel } from '../files';
3
+ import { FileWithNameModel } from '../files';
4
4
  import { WorkspaceIndexedModel } from "./workspace";
5
5
  export type UserForm = Pick<WorkspaceIndexedModel, "index_workspace"> & {
6
6
  favorite: boolean;
@@ -32,25 +32,20 @@ export interface UserFormRevision<TFields extends BaseSerializedObject = ISerial
32
32
  revision: number | "Pending";
33
33
  }
34
34
  export type UserFormRevisionPayload = Omit<Payload<UserFormRevision>, "created_by" | "revision" | "form" | "submitted_at">;
35
- export interface UserFormSubmission extends OfflineModel {
35
+ export interface UserFormSubmission extends OfflineModel, SubmittedAtModel {
36
36
  form_revision: string;
37
37
  values: Record<string, FieldValue>;
38
38
  created_by: number;
39
- created_at: string;
40
- submitted_at: string;
41
- updated_at: string;
42
39
  issue?: string;
43
40
  component?: string;
44
41
  component_stage?: string;
45
42
  }
46
- export interface UserFormSubmissionAttachment extends OfflineModel, UploadedFileModel {
43
+ export interface UserFormSubmissionAttachment extends OfflineModel, FileWithNameModel {
47
44
  submission: string;
48
- file_name: string;
49
45
  field_identifier: string;
50
46
  }
51
- export interface UserFormRevisionAttachment extends OfflineModel, UploadedFileModel {
47
+ export interface UserFormRevisionAttachment extends OfflineModel, FileWithNameModel {
52
48
  revision: string;
53
- file_name: string;
54
49
  field_identifier: string;
55
50
  }
56
- export type UserFormSubmissionPayload = Omit<Payload<UserFormSubmission>, "created_by">;
51
+ export type UserFormSubmissionPayload = Omit<Payload<UserFormSubmission>, "created_by" | "submitted_at">;
@@ -1,3 +1,4 @@
1
+ import { FileUploadPayload } from "../typings";
1
2
  export declare const getFileS3Key: (file: File, hash?: string) => Promise<string>;
2
3
  export declare function hashFile(file: Blob): Promise<string>;
3
4
  export declare function getFileIdentifier(file: File): string;
@@ -5,6 +6,7 @@ export declare function getRenamedFile(file: File, newName: string): File & {
5
6
  name: string;
6
7
  };
7
8
  export declare function downloadInMemoryFile(filename: string, text: string): void;
9
+ export declare const constructUploadedFilePayloads: (files: File[]) => Promise<FileUploadPayload[]>;
8
10
  export declare const fileToBlob: (dataUrl: string) => Promise<Blob>;
9
11
  export declare const blobToBase64: (blob: Blob) => Promise<string>;
10
12
  export interface useFileSrcProps {
@@ -0,0 +1,2 @@
1
+ import { Stored, UserFormRevision } from "../typings";
2
+ export declare const formRevisionSortFn: (formRevisionA: Stored<UserFormRevision>, formRevisionB: Stored<UserFormRevision>) => 1 | -1;
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.51-add-submitted-at-to-form-revisions.1",
6
+ "version": "1.0.51-attachment-creation-flows.0",
7
7
  "type": "module",
8
8
  "main": "dist/overmap-core.umd.cjs",
9
9
  "module": "dist/overmap-core.js",
@@ -1,145 +0,0 @@
1
- import { PayloadAction, Reducer } from "@reduxjs/toolkit";
2
- import { CachedUserForm, UserForm, UserFormRevision, UserFormRevisionAttachment, UserFormSubmission, UserFormSubmissionAttachment } from '../../typings/models/forms';
3
- import { SearchArgs } from '../../typings/search';
4
- import { Selector, SelectorWithArgs } from '../../typings/store';
5
- import { Stored, Submitted } from "../../typings";
6
- export interface UserFormState {
7
- userForms: Record<string, Stored<UserForm>>;
8
- submissions: Record<string, UserFormSubmission>;
9
- submissionAttachments: Record<UserFormSubmission["offline_id"], UserFormSubmissionAttachment[]>;
10
- revisions: Record<string, UserFormRevision>;
11
- revisionAttachments: Record<UserFormRevision["offline_id"], UserFormRevisionAttachment[]>;
12
- }
13
- export declare const userFormSlice: import("@reduxjs/toolkit").Slice<UserFormState, {
14
- setUserForms: (state: import("immer/dist/internal.js").WritableDraft<UserFormState>, action: {
15
- payload: Submitted<UserForm>[];
16
- }) => void;
17
- addUserForm: (state: import("immer/dist/internal.js").WritableDraft<UserFormState>, action: {
18
- payload: Submitted<UserForm>;
19
- }) => void;
20
- addUserForms: (state: import("immer/dist/internal.js").WritableDraft<UserFormState>, action: {
21
- payload: Submitted<UserForm>[];
22
- }) => void;
23
- addUserFormRevisions: (state: import("immer/dist/internal.js").WritableDraft<UserFormState>, action: {
24
- payload: UserFormRevision[];
25
- }) => void;
26
- addUserFormRevision: (state: import("immer/dist/internal.js").WritableDraft<UserFormState>, action: PayloadAction<UserFormRevision>) => void;
27
- deleteUserFormRevision: (state: import("immer/dist/internal.js").WritableDraft<UserFormState>, action: PayloadAction<string>) => void;
28
- deleteUserFormRevisions: (state: import("immer/dist/internal.js").WritableDraft<UserFormState>, action: {
29
- payload: UserFormRevision[];
30
- }) => void;
31
- updateOrCreateUserFormSubmission: (state: import("immer/dist/internal.js").WritableDraft<UserFormState>, action: {
32
- payload: UserFormSubmission;
33
- }) => void;
34
- addUserFormSubmissionAttachment: (state: import("immer/dist/internal.js").WritableDraft<UserFormState>, action: {
35
- payload: UserFormSubmissionAttachment;
36
- }) => void;
37
- addUserFormRevisionAttachment: (state: import("immer/dist/internal.js").WritableDraft<UserFormState>, action: {
38
- payload: UserFormRevisionAttachment;
39
- }) => void;
40
- setUserFormSubmissionAttachments: (state: import("immer/dist/internal.js").WritableDraft<UserFormState>, action: {
41
- payload: UserFormSubmissionAttachment[];
42
- }) => void;
43
- setUserFormRevisionAttachments: (state: import("immer/dist/internal.js").WritableDraft<UserFormState>, action: {
44
- payload: UserFormRevisionAttachment[];
45
- }) => void;
46
- deleteUserFormSubmission: (state: import("immer/dist/internal.js").WritableDraft<UserFormState>, action: PayloadAction<string>) => void;
47
- deleteUserFormSubmissions: (state: import("immer/dist/internal.js").WritableDraft<UserFormState>, action: {
48
- payload: UserFormSubmission[];
49
- }) => void;
50
- addUserFormSubmissions: (state: import("immer/dist/internal.js").WritableDraft<UserFormState>, action: {
51
- payload: UserFormSubmission[];
52
- }) => void;
53
- setUserFormSubmissions: (state: import("immer/dist/internal.js").WritableDraft<UserFormState>, action: {
54
- payload: UserFormSubmission[];
55
- }) => void;
56
- favoriteForm: (state: import("immer/dist/internal.js").WritableDraft<UserFormState>, action: {
57
- payload: {
58
- formId: string;
59
- };
60
- }) => void;
61
- unfavoriteForm: (state: import("immer/dist/internal.js").WritableDraft<UserFormState>, action: {
62
- payload: {
63
- formId: string;
64
- };
65
- }) => void;
66
- deleteUserForm: (state: import("immer/dist/internal.js").WritableDraft<UserFormState>, action: {
67
- payload: string;
68
- }) => void;
69
- }, "userForms">;
70
- export declare const addUserForm: import("@reduxjs/toolkit").ActionCreatorWithPayload<(Pick<import('../../typings/models/workspace').WorkspaceIndexedModel, "index_workspace"> & {
71
- favorite: boolean;
72
- component_type?: string | undefined;
73
- } & {
74
- owner_organization: number;
75
- owner_user: undefined;
76
- } & {
77
- offline_id: string;
78
- } & import('../../typings/models/base').OfflineModel & {
79
- created_by: number;
80
- submitted_at: string;
81
- }) | (Pick<import('../../typings/models/workspace').WorkspaceIndexedModel, "index_workspace"> & {
82
- favorite: boolean;
83
- component_type?: string | undefined;
84
- } & {
85
- owner_organization: undefined;
86
- owner_user: number;
87
- } & {
88
- offline_id: string;
89
- } & import('../../typings/models/base').OfflineModel & {
90
- created_by: number;
91
- submitted_at: string;
92
- }), "userForms/addUserForm">, addUserForms: import("@reduxjs/toolkit").ActionCreatorWithPayload<((Pick<import('../../typings/models/workspace').WorkspaceIndexedModel, "index_workspace"> & {
93
- favorite: boolean;
94
- component_type?: string | undefined;
95
- } & {
96
- owner_organization: number;
97
- owner_user: undefined;
98
- } & {
99
- offline_id: string;
100
- } & import('../../typings/models/base').OfflineModel & {
101
- created_by: number;
102
- submitted_at: string;
103
- }) | (Pick<import('../../typings/models/workspace').WorkspaceIndexedModel, "index_workspace"> & {
104
- favorite: boolean;
105
- component_type?: string | undefined;
106
- } & {
107
- owner_organization: undefined;
108
- owner_user: number;
109
- } & {
110
- offline_id: string;
111
- } & import('../../typings/models/base').OfflineModel & {
112
- created_by: number;
113
- submitted_at: string;
114
- }))[], "userForms/addUserForms">, addUserFormRevisions: import("@reduxjs/toolkit").ActionCreatorWithPayload<UserFormRevision<import('../../forms').ISerializedField>[], "userForms/addUserFormRevisions">, updateOrCreateUserFormSubmission: import("@reduxjs/toolkit").ActionCreatorWithPayload<UserFormSubmission, "userForms/updateOrCreateUserFormSubmission">, addUserFormSubmissions: import("@reduxjs/toolkit").ActionCreatorWithPayload<UserFormSubmission[], "userForms/addUserFormSubmissions">, deleteUserFormSubmission: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "userForms/deleteUserFormSubmission">, deleteUserFormSubmissions: import("@reduxjs/toolkit").ActionCreatorWithPayload<UserFormSubmission[], "userForms/deleteUserFormSubmissions">, favoriteForm: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
115
- formId: string;
116
- }, "userForms/favoriteForm">, unfavoriteForm: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
117
- formId: string;
118
- }, "userForms/unfavoriteForm">, deleteUserForm: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "userForms/deleteUserForm">, deleteUserFormRevision: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "userForms/deleteUserFormRevision">, deleteUserFormRevisions: import("@reduxjs/toolkit").ActionCreatorWithPayload<UserFormRevision<import('../../forms').ISerializedField>[], "userForms/deleteUserFormRevisions">, setUserFormSubmissions: import("@reduxjs/toolkit").ActionCreatorWithPayload<UserFormSubmission[], "userForms/setUserFormSubmissions">, addUserFormRevision: import("@reduxjs/toolkit").ActionCreatorWithPayload<UserFormRevision<import('../../forms').ISerializedField>, "userForms/addUserFormRevision">, addUserFormSubmissionAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<UserFormSubmissionAttachment, "userForms/addUserFormSubmissionAttachment">, addUserFormRevisionAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<UserFormRevisionAttachment, "userForms/addUserFormRevisionAttachment">, setUserFormSubmissionAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<UserFormSubmissionAttachment[], "userForms/setUserFormSubmissionAttachments">, setUserFormRevisionAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<UserFormRevisionAttachment[], "userForms/setUserFormRevisionAttachments">;
119
- export type UserFormSearchArgs = SearchArgs<{
120
- /** `undefined` means don't filter by favorite. `boolean` filters forms. */
121
- favorites?: boolean;
122
- /** organization owner */
123
- owner_organization?: number;
124
- /** user owner */
125
- owner_user?: number;
126
- }>;
127
- export declare const selectSubmissionAttachments: SelectorWithArgs<string, UserFormSubmissionAttachment[]>;
128
- export declare const selectRevisionAttachments: SelectorWithArgs<string, UserFormRevisionAttachment[]>;
129
- export declare const selectFilteredUserForms: SelectorWithArgs<UserFormSearchArgs, CachedUserForm[]>;
130
- export declare const selectFormRevision: SelectorWithArgs<string, UserFormRevision>;
131
- export declare const selectLatestFormRevision: SelectorWithArgs<string, UserFormRevision>;
132
- export declare const selectUserForm: SelectorWithArgs<string, Stored<UserForm>>;
133
- export declare const selectUserFormSubmission: SelectorWithArgs<string, UserFormSubmission>;
134
- export declare const selectRevisionsForForm: SelectorWithArgs<string, UserFormRevision[]>;
135
- export declare const selectSubmissionsForForm: SelectorWithArgs<string, UserFormSubmission[]>;
136
- export declare const selectSubmissionsForIssue: SelectorWithArgs<string, UserFormSubmission[]>;
137
- export declare const selectSubmissionsForComponent: SelectorWithArgs<string, UserFormSubmission[]>;
138
- export declare const selectComponentSubmissionMapping: Selector<Record<string, UserFormSubmission[]>>;
139
- export declare const selectUserFormMapping: Selector<Record<Stored<UserForm>["offline_id"], Stored<UserForm>>>;
140
- export declare const selectComponentTypeForm: SelectorWithArgs<string, Stored<UserForm>>;
141
- export declare const selectLatestRevisionsFromComponentTypeIds: SelectorWithArgs<string[], Record<string, Stored<UserFormRevision>>>;
142
- export declare const selectLatestRevisionByFormId: Selector<Record<Stored<UserForm>["offline_id"], UserFormRevision>>;
143
- export declare const selectNumberOfUserForms: Selector<number>;
144
- export declare const selectNumberOfGeneralUserForms: Selector<number>;
145
- export declare const userFormReducer: Reducer<UserFormState>;