@overmap-ai/core 1.0.51-bulk-form-submission.4 → 1.0.51-fix-document-urls.1

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.
@@ -1,6 +1,6 @@
1
1
  import { BaseApiService } from "./BaseApiService";
2
2
  import type { OptimisticModelResult } from "../typings";
3
- import { ComponentAttachment, ComponentTypeAttachment, Created, IssueAttachment, MaybeObjectURL, AttachmentPayload, Stored, ProjectAttachment, DocumentAttachment, ProjectDocument } from "../../typings";
3
+ import { ComponentAttachment, ComponentTypeAttachment, Created, IssueAttachment, MaybeObjectURL, AttachmentPayload, Stored, ProjectAttachment, DocumentAttachment, Document } from "../../typings";
4
4
  /**
5
5
  * Handles creation and caching of attachments
6
6
  */
@@ -29,7 +29,7 @@ export declare class AttachmentService extends BaseApiService {
29
29
  attachFilesToIssue(filesToSubmit: File[], issueId: string): Promise<OptimisticModelResult<IssueAttachment>>[];
30
30
  attachFilesToComponent(filesToSubmit: File[], componentId: string): Promise<OptimisticModelResult<ComponentAttachment>>[];
31
31
  attachFilesToComponentType(filesToSubmit: File[], componentTypeId: string): Promise<OptimisticModelResult<ComponentTypeAttachment>>[];
32
- attachFilesToDocument(filesToSubmit: File[], documentId: ProjectDocument["offline_id"]): Promise<OptimisticModelResult<DocumentAttachment>>[];
32
+ attachFilesToDocument(filesToSubmit: File[], documentId: Document["offline_id"]): Promise<OptimisticModelResult<DocumentAttachment>>[];
33
33
  replaceIssueAttachmentFile(attachmentId: string, newFile: MaybeObjectURL<File>): Promise<OptimisticModelResult<IssueAttachment>>;
34
34
  replaceComponentAttachmentFile(attachmentId: string, newFile: MaybeObjectURL<File>): Promise<OptimisticModelResult<ComponentAttachment>>;
35
35
  replaceComponentTypeAttachmentFile(attachmentId: string, newFile: MaybeObjectURL<File>): Promise<OptimisticModelResult<ComponentTypeAttachment>>;
@@ -1,10 +1,10 @@
1
1
  import { BaseApiService } from "./BaseApiService";
2
- import { MovePosition, Payload, ProjectDocument, Submitted } from "../../typings";
2
+ import { Document, DocumentPayload, MovePosition, Submitted } from "../../typings";
3
3
  import { OptimisticModelResult } from "../typings";
4
4
  export declare class DocumentService extends BaseApiService {
5
- add(document: Payload<Omit<ProjectDocument, "created_by">>): OptimisticModelResult<ProjectDocument>;
6
- update(document: Submitted<Partial<ProjectDocument>>): OptimisticModelResult<ProjectDocument>;
7
- move(documentId: string, targetDocumentId: string | null, position: MovePosition): Promise<ProjectDocument[]>;
8
- delete(documentId: string): Promise<ProjectDocument[]>;
5
+ add(document: DocumentPayload): OptimisticModelResult<Document>;
6
+ update(document: Submitted<Partial<Document>>): OptimisticModelResult<Document>;
7
+ move(documentId: string, targetDocumentId: string | null, position: MovePosition): Promise<Document[]>;
8
+ delete(documentId: string): Promise<Document[]>;
9
9
  refreshStore(): Promise<void>;
10
10
  }
@@ -1,25 +1,25 @@
1
1
  /// <reference types="@redux-offline/redux-offline" />
2
2
  import { Reducer } from "@reduxjs/toolkit";
3
- import { DocumentAttachment, MovePosition, ProjectDocument, RootState, Selector, SelectorWithArgs, Stored, Submitted } from "../../typings";
3
+ import { DocumentAttachment, MovePosition, Document, RootState, Selector, SelectorWithArgs, Stored, Submitted } from "../../typings";
4
4
  import { AppSelector } from "./componentTypeSlice";
5
5
  export interface DocumentState {
6
- documents: Record<string, Stored<ProjectDocument>>;
6
+ documents: Record<string, Stored<Document>>;
7
7
  attachments: Record<string, Stored<DocumentAttachment>>;
8
8
  }
9
9
  export interface MoveDocumentPayload {
10
- documentId: ProjectDocument["offline_id"];
11
- targetDocumentId: ProjectDocument["offline_id"] | null;
10
+ documentId: Document["offline_id"];
11
+ targetDocumentId: Document["offline_id"] | null;
12
12
  position: MovePosition;
13
13
  }
14
14
  export declare const documentSlice: import("@reduxjs/toolkit").Slice<DocumentState, {
15
15
  setDocuments: (state: import("immer/dist/internal.js").WritableDraft<DocumentState>, action: {
16
- payload: ProjectDocument[];
16
+ payload: Stored<Document>[];
17
17
  }) => void;
18
18
  addDocuments: (state: import("immer/dist/internal.js").WritableDraft<DocumentState>, action: {
19
- payload: ProjectDocument[];
19
+ payload: Stored<Document>[];
20
20
  }) => void;
21
21
  updateDocuments: (state: import("immer/dist/internal.js").WritableDraft<DocumentState>, action: {
22
- payload: Submitted<Partial<ProjectDocument>>[];
22
+ payload: Submitted<Partial<Stored<Document>>>[];
23
23
  }) => void;
24
24
  moveDocument: (state: import("immer/dist/internal.js").WritableDraft<DocumentState>, action: {
25
25
  payload: MoveDocumentPayload;
@@ -52,10 +52,202 @@ export declare const documentSlice: import("@reduxjs/toolkit").Slice<DocumentSta
52
52
  type: string;
53
53
  }) => void;
54
54
  }, "documents">;
55
- export declare const setDocuments: import("@reduxjs/toolkit").ActionCreatorWithPayload<ProjectDocument[], "documents/setDocuments">, addDocuments: import("@reduxjs/toolkit").ActionCreatorWithPayload<ProjectDocument[], "documents/addDocuments">, updateDocuments: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<Partial<ProjectDocument>>[], "documents/updateDocuments">, moveDocument: import("@reduxjs/toolkit").ActionCreatorWithPayload<MoveDocumentPayload, "documents/moveDocument">, removeDocuments: import("@reduxjs/toolkit").ActionCreatorWithPayload<string[], "documents/removeDocuments">, setDocumentAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<import('../../typings/models/issues').Created<DocumentAttachment>[], "documents/setDocumentAttachments">, addDocumentAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<DocumentAttachment>, "documents/addDocumentAttachment">, addDocumentAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<DocumentAttachment>[], "documents/addDocumentAttachments">, updateDocumentAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<DocumentAttachment>, "documents/updateDocumentAttachment">, removeDocumentAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "documents/removeDocumentAttachment">, removeDocumentAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<string[], "documents/removeDocumentAttachments">;
56
- export declare const selectDocumentsMapping: AppSelector<Record<string, Stored<ProjectDocument>>>;
57
- export declare const selectDocuments: AppSelector<Stored<ProjectDocument>[]>;
58
- export declare const selectDocument: (args: string) => (state: RootState) => Stored<ProjectDocument> | undefined;
55
+ export declare const setDocuments: import("@reduxjs/toolkit").ActionCreatorWithPayload<((import('../../typings/models/base').OfflineModel & {
56
+ title: string | null;
57
+ description: string | null;
58
+ content: string | null;
59
+ parent_document: string | null;
60
+ created_by: number;
61
+ } & {
62
+ project: number;
63
+ organization: null;
64
+ } & {
65
+ children_documents: string[];
66
+ } & {
67
+ offline_id: string;
68
+ } & Omit<import('../../typings/models/base').OfflineModel & {
69
+ title: string | null;
70
+ description: string | null;
71
+ content: string | null;
72
+ parent_document: string | null;
73
+ created_by: number;
74
+ } & {
75
+ project: number;
76
+ organization: null;
77
+ } & {
78
+ children_documents: string[];
79
+ }, "id" | "created_at" | "created_by">) | (import('../../typings/models/base').OfflineModel & {
80
+ title: string | null;
81
+ description: string | null;
82
+ content: string | null;
83
+ parent_document: string | null;
84
+ created_by: number;
85
+ } & {
86
+ organization: number;
87
+ project: null;
88
+ } & {
89
+ children_documents: string[];
90
+ } & {
91
+ offline_id: string;
92
+ } & Omit<import('../../typings/models/base').OfflineModel & {
93
+ title: string | null;
94
+ description: string | null;
95
+ content: string | null;
96
+ parent_document: string | null;
97
+ created_by: number;
98
+ } & {
99
+ organization: number;
100
+ project: null;
101
+ } & {
102
+ children_documents: string[];
103
+ }, "id" | "created_at" | "created_by">))[], "documents/setDocuments">, addDocuments: import("@reduxjs/toolkit").ActionCreatorWithPayload<((import('../../typings/models/base').OfflineModel & {
104
+ title: string | null;
105
+ description: string | null;
106
+ content: string | null;
107
+ parent_document: string | null;
108
+ created_by: number;
109
+ } & {
110
+ project: number;
111
+ organization: null;
112
+ } & {
113
+ children_documents: string[];
114
+ } & {
115
+ offline_id: string;
116
+ } & Omit<import('../../typings/models/base').OfflineModel & {
117
+ title: string | null;
118
+ description: string | null;
119
+ content: string | null;
120
+ parent_document: string | null;
121
+ created_by: number;
122
+ } & {
123
+ project: number;
124
+ organization: null;
125
+ } & {
126
+ children_documents: string[];
127
+ }, "id" | "created_at" | "created_by">) | (import('../../typings/models/base').OfflineModel & {
128
+ title: string | null;
129
+ description: string | null;
130
+ content: string | null;
131
+ parent_document: string | null;
132
+ created_by: number;
133
+ } & {
134
+ organization: number;
135
+ project: null;
136
+ } & {
137
+ children_documents: string[];
138
+ } & {
139
+ offline_id: string;
140
+ } & Omit<import('../../typings/models/base').OfflineModel & {
141
+ title: string | null;
142
+ description: string | null;
143
+ content: string | null;
144
+ parent_document: string | null;
145
+ created_by: number;
146
+ } & {
147
+ organization: number;
148
+ project: null;
149
+ } & {
150
+ children_documents: string[];
151
+ }, "id" | "created_at" | "created_by">))[], "documents/addDocuments">, updateDocuments: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<Partial<(import('../../typings/models/base').OfflineModel & {
152
+ title: string | null;
153
+ description: string | null;
154
+ content: string | null;
155
+ parent_document: string | null;
156
+ created_by: number;
157
+ } & {
158
+ project: number;
159
+ organization: null;
160
+ } & {
161
+ children_documents: string[];
162
+ } & {
163
+ offline_id: string;
164
+ } & Omit<import('../../typings/models/base').OfflineModel & {
165
+ title: string | null;
166
+ description: string | null;
167
+ content: string | null;
168
+ parent_document: string | null;
169
+ created_by: number;
170
+ } & {
171
+ project: number;
172
+ organization: null;
173
+ } & {
174
+ children_documents: string[];
175
+ }, "id" | "created_at" | "created_by">) | (import('../../typings/models/base').OfflineModel & {
176
+ title: string | null;
177
+ description: string | null;
178
+ content: string | null;
179
+ parent_document: string | null;
180
+ created_by: number;
181
+ } & {
182
+ organization: number;
183
+ project: null;
184
+ } & {
185
+ children_documents: string[];
186
+ } & {
187
+ offline_id: string;
188
+ } & Omit<import('../../typings/models/base').OfflineModel & {
189
+ title: string | null;
190
+ description: string | null;
191
+ content: string | null;
192
+ parent_document: string | null;
193
+ created_by: number;
194
+ } & {
195
+ organization: number;
196
+ project: null;
197
+ } & {
198
+ children_documents: string[];
199
+ }, "id" | "created_at" | "created_by">)>>[], "documents/updateDocuments">, moveDocument: import("@reduxjs/toolkit").ActionCreatorWithPayload<MoveDocumentPayload, "documents/moveDocument">, removeDocuments: import("@reduxjs/toolkit").ActionCreatorWithPayload<string[], "documents/removeDocuments">, setDocumentAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<import('../../typings/models/issues').Created<DocumentAttachment>[], "documents/setDocumentAttachments">, addDocumentAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<DocumentAttachment>, "documents/addDocumentAttachment">, addDocumentAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<DocumentAttachment>[], "documents/addDocumentAttachments">, updateDocumentAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<Submitted<DocumentAttachment>, "documents/updateDocumentAttachment">, removeDocumentAttachment: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "documents/removeDocumentAttachment">, removeDocumentAttachments: import("@reduxjs/toolkit").ActionCreatorWithPayload<string[], "documents/removeDocumentAttachments">;
200
+ export declare const selectDocumentsMapping: AppSelector<Record<string, Stored<Document>>>;
201
+ export declare const selectDocuments: AppSelector<Stored<Document>[]>;
202
+ export declare const selectDocument: (args: string) => (state: RootState) => (import('../../typings/models/base').OfflineModel & {
203
+ title: string | null;
204
+ description: string | null;
205
+ content: string | null;
206
+ parent_document: string | null;
207
+ created_by: number;
208
+ } & {
209
+ project: number;
210
+ organization: null;
211
+ } & {
212
+ children_documents: string[];
213
+ } & {
214
+ offline_id: string;
215
+ } & Omit<import('../../typings/models/base').OfflineModel & {
216
+ title: string | null;
217
+ description: string | null;
218
+ content: string | null;
219
+ parent_document: string | null;
220
+ created_by: number;
221
+ } & {
222
+ project: number;
223
+ organization: null;
224
+ } & {
225
+ children_documents: string[];
226
+ }, "id" | "created_at" | "created_by">) | (import('../../typings/models/base').OfflineModel & {
227
+ title: string | null;
228
+ description: string | null;
229
+ content: string | null;
230
+ parent_document: string | null;
231
+ created_by: number;
232
+ } & {
233
+ organization: number;
234
+ project: null;
235
+ } & {
236
+ children_documents: string[];
237
+ } & {
238
+ offline_id: string;
239
+ } & Omit<import('../../typings/models/base').OfflineModel & {
240
+ title: string | null;
241
+ description: string | null;
242
+ content: string | null;
243
+ parent_document: string | null;
244
+ created_by: number;
245
+ } & {
246
+ organization: number;
247
+ project: null;
248
+ } & {
249
+ children_documents: string[];
250
+ }, "id" | "created_at" | "created_by">) | undefined;
59
251
  export declare const selectAncestorIdsOfDocument: (args: string) => (state: RootState) => string[];
60
252
  export declare const selectRootDocuments: ((state: import("redux").EmptyObject & {
61
253
  versioning: import('../slices/versioningSlice').VersioningState;
@@ -86,7 +278,151 @@ export declare const selectRootDocuments: ((state: import("redux").EmptyObject &
86
278
  documentsReducer: DocumentState;
87
279
  } & {
88
280
  offline: import("@redux-offline/redux-offline/lib/types").OfflineState;
89
- }) => Stored<ProjectDocument>[]) & import("reselect").OutputSelectorFields<(args_0: Stored<ProjectDocument>[]) => Stored<ProjectDocument>[], {
281
+ }) => ((import('../../typings/models/base').OfflineModel & {
282
+ title: string | null;
283
+ description: string | null;
284
+ content: string | null;
285
+ parent_document: string | null;
286
+ created_by: number;
287
+ } & {
288
+ project: number;
289
+ organization: null;
290
+ } & {
291
+ children_documents: string[];
292
+ } & {
293
+ offline_id: string;
294
+ } & Omit<import('../../typings/models/base').OfflineModel & {
295
+ title: string | null;
296
+ description: string | null;
297
+ content: string | null;
298
+ parent_document: string | null;
299
+ created_by: number;
300
+ } & {
301
+ project: number;
302
+ organization: null;
303
+ } & {
304
+ children_documents: string[];
305
+ }, "id" | "created_at" | "created_by">) | (import('../../typings/models/base').OfflineModel & {
306
+ title: string | null;
307
+ description: string | null;
308
+ content: string | null;
309
+ parent_document: string | null;
310
+ created_by: number;
311
+ } & {
312
+ organization: number;
313
+ project: null;
314
+ } & {
315
+ children_documents: string[];
316
+ } & {
317
+ offline_id: string;
318
+ } & Omit<import('../../typings/models/base').OfflineModel & {
319
+ title: string | null;
320
+ description: string | null;
321
+ content: string | null;
322
+ parent_document: string | null;
323
+ created_by: number;
324
+ } & {
325
+ organization: number;
326
+ project: null;
327
+ } & {
328
+ children_documents: string[];
329
+ }, "id" | "created_at" | "created_by">))[]) & import("reselect").OutputSelectorFields<(args_0: ((import('../../typings/models/base').OfflineModel & {
330
+ title: string | null;
331
+ description: string | null;
332
+ content: string | null;
333
+ parent_document: string | null;
334
+ created_by: number;
335
+ } & {
336
+ project: number;
337
+ organization: null;
338
+ } & {
339
+ children_documents: string[];
340
+ } & {
341
+ offline_id: string;
342
+ } & Omit<import('../../typings/models/base').OfflineModel & {
343
+ title: string | null;
344
+ description: string | null;
345
+ content: string | null;
346
+ parent_document: string | null;
347
+ created_by: number;
348
+ } & {
349
+ project: number;
350
+ organization: null;
351
+ } & {
352
+ children_documents: string[];
353
+ }, "id" | "created_at" | "created_by">) | (import('../../typings/models/base').OfflineModel & {
354
+ title: string | null;
355
+ description: string | null;
356
+ content: string | null;
357
+ parent_document: string | null;
358
+ created_by: number;
359
+ } & {
360
+ organization: number;
361
+ project: null;
362
+ } & {
363
+ children_documents: string[];
364
+ } & {
365
+ offline_id: string;
366
+ } & Omit<import('../../typings/models/base').OfflineModel & {
367
+ title: string | null;
368
+ description: string | null;
369
+ content: string | null;
370
+ parent_document: string | null;
371
+ created_by: number;
372
+ } & {
373
+ organization: number;
374
+ project: null;
375
+ } & {
376
+ children_documents: string[];
377
+ }, "id" | "created_at" | "created_by">))[]) => ((import('../../typings/models/base').OfflineModel & {
378
+ title: string | null;
379
+ description: string | null;
380
+ content: string | null;
381
+ parent_document: string | null;
382
+ created_by: number;
383
+ } & {
384
+ project: number;
385
+ organization: null;
386
+ } & {
387
+ children_documents: string[];
388
+ } & {
389
+ offline_id: string;
390
+ } & Omit<import('../../typings/models/base').OfflineModel & {
391
+ title: string | null;
392
+ description: string | null;
393
+ content: string | null;
394
+ parent_document: string | null;
395
+ created_by: number;
396
+ } & {
397
+ project: number;
398
+ organization: null;
399
+ } & {
400
+ children_documents: string[];
401
+ }, "id" | "created_at" | "created_by">) | (import('../../typings/models/base').OfflineModel & {
402
+ title: string | null;
403
+ description: string | null;
404
+ content: string | null;
405
+ parent_document: string | null;
406
+ created_by: number;
407
+ } & {
408
+ organization: number;
409
+ project: null;
410
+ } & {
411
+ children_documents: string[];
412
+ } & {
413
+ offline_id: string;
414
+ } & Omit<import('../../typings/models/base').OfflineModel & {
415
+ title: string | null;
416
+ description: string | null;
417
+ content: string | null;
418
+ parent_document: string | null;
419
+ created_by: number;
420
+ } & {
421
+ organization: number;
422
+ project: null;
423
+ } & {
424
+ children_documents: string[];
425
+ }, "id" | "created_at" | "created_by">))[], {
90
426
  clearCache: () => void;
91
427
  }> & {
92
428
  clearCache: () => void;
package/dist/style.css CHANGED
@@ -154,6 +154,11 @@
154
154
  overflow-x: auto;
155
155
  white-space: nowrap;
156
156
  padding-top: calc(var(--space-1) + 1px);
157
+ }._QrScannerWrapper_1puz3_1 {
158
+ background: var(--color-background);
159
+ }
160
+ ._QrScannerWrapper_1puz3_1 svg {
161
+ stroke: #29A383 !important;
157
162
  }._PDFViewerTopbar_103p8_1 {
158
163
  background: var(--color-background);
159
164
  }
@@ -1,7 +1,7 @@
1
1
  import { OfflineModel } from "./base";
2
2
  import { MaybeObjectURL, FileModel, FileWithNameModel } from "../files";
3
3
  import { Project } from "./projects";
4
- import { ProjectDocument } from "./documents";
4
+ import { Document } from "./documents";
5
5
  export interface Attachment extends OfflineModel, FileWithNameModel {
6
6
  description?: string;
7
7
  file_type: string;
@@ -21,7 +21,7 @@ export interface ProjectAttachment extends Attachment {
21
21
  project: Project["id"];
22
22
  }
23
23
  export interface DocumentAttachment extends Attachment {
24
- document: ProjectDocument["offline_id"];
24
+ document: Document["offline_id"];
25
25
  }
26
26
  /** to get an AttachmentPayload for a specific type, pass in the given AttachmentType
27
27
  * ex. AttachmentPayload<IssueAttachment> */
@@ -1,11 +1,25 @@
1
- import { OfflineModel } from "./base";
1
+ import { OfflineModel, Payload } from "./base";
2
2
  import { User } from "./users";
3
- export interface ProjectDocument extends OfflineModel {
3
+ export type SubmittedDocument = OfflineModel & {
4
4
  title: string | null;
5
5
  description: string | null;
6
6
  content: string | null;
7
+ parent_document: string | null;
7
8
  created_by: User["id"];
8
- parent_document: ProjectDocument["offline_id"] | null;
9
- children_documents: ProjectDocument["offline_id"][];
10
- }
9
+ } & ({
10
+ project: number;
11
+ organization: null;
12
+ } | {
13
+ organization: number;
14
+ project: null;
15
+ });
16
+ export type Document = SubmittedDocument & {
17
+ children_documents: string[];
18
+ };
19
+ export type CreatedDocument = Document & {
20
+ created_by: User["id"];
21
+ created_at: string;
22
+ updated_at: string;
23
+ };
24
+ export type DocumentPayload = Payload<Omit<SubmittedDocument, "project" | "organization">>;
11
25
  export type MovePosition = "left" | "right" | "left-child" | "right-child";
@@ -5,17 +5,18 @@ import { Marker } from "./geo";
5
5
  import { CreatedUserForm, SubmittedUserForm, UserForm } from "./forms";
6
6
  import { User } from "./users";
7
7
  import { CSSColor } from "../colors";
8
+ import { CreatedDocument, SubmittedDocument } from "./documents";
8
9
  /**
9
10
  * Represents a model instance that has been submitted to the backend. Some properties (depending on which model, but in
10
11
  * all cases, the `offline_id`) are guaranteed to be set.
11
12
  */
12
- export type Submitted<TModel> = Offline<TModel> & (TModel extends Issue ? SubmittedIssue : TModel extends UserForm ? SubmittedUserForm : Omit<TModel, "created_at" | "created_by" | "id">);
13
+ export type Submitted<TModel> = Offline<TModel> & (TModel extends Issue ? SubmittedIssue : TModel extends UserForm ? SubmittedUserForm : TModel extends Document ? SubmittedDocument : Omit<TModel, "created_at" | "created_by" | "id">);
13
14
  /**
14
15
  * Represents a model instance that has been submitted to the backend, accepted, then downloaded. Created models
15
16
  * typically have additional properties that are only known once it has been processed and accepted by the API, such as
16
17
  * the `created_at` timestamp, which is the time at which the data was written to the database.
17
18
  */
18
- export type Created<TModel> = Submitted<TModel> & (TModel extends Issue ? CreatedIssue : TModel extends IssueComment ? CreatedIssueComment : TModel extends UserForm ? CreatedUserForm : TModel);
19
+ export type Created<TModel> = Submitted<TModel> & (TModel extends Issue ? CreatedIssue : TModel extends IssueComment ? CreatedIssueComment : TModel extends UserForm ? CreatedUserForm : TModel extends Document ? CreatedDocument : TModel);
19
20
  /**
20
21
  * Model instances that are stored in the Redux store can be already-created (and will likely be gotten with the initial
21
22
  * data load), or to-be-created. In the former case, you will get a `Created<TModel>`. In the latter case, you will get