@overmap-ai/core 1.0.48-fix-agent-errors.4 → 1.0.48-form-submission-view.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/README.md +4 -4
- package/dist/components/ImageCard/ImageCard.d.ts +1 -1
- package/dist/forms/builder/hooks.d.ts +2 -1
- package/dist/overmap-core.js +396 -131
- package/dist/overmap-core.js.map +1 -1
- package/dist/overmap-core.umd.cjs +395 -130
- package/dist/overmap-core.umd.cjs.map +1 -1
- package/dist/sdk/sdk.d.ts +2 -1
- package/dist/sdk/services/AgentService.d.ts +1 -0
- package/dist/sdk/services/IssueCommentService.d.ts +2 -2
- package/dist/sdk/services/IssueUpdateService.d.ts +4 -0
- package/dist/sdk/services/index.d.ts +1 -0
- package/dist/store/slices/componentStageSlice.d.ts +1 -0
- package/dist/store/slices/issueSlice.d.ts +21 -3
- package/dist/store/slices/userFormSlice.d.ts +1 -0
- package/dist/typings/models/access.d.ts +1 -1
- package/dist/typings/models/attachments.d.ts +3 -1
- package/dist/typings/models/issues.d.ts +35 -1
- package/package.json +152 -152
|
@@ -1798,6 +1798,11 @@ var __publicField = (obj, key, value) => {
|
|
|
1798
1798
|
}
|
|
1799
1799
|
});
|
|
1800
1800
|
const selectStageMapping = (state) => state.componentStageReducer.stages;
|
|
1801
|
+
const selectStage = restructureCreateSelectorWithArgs(
|
|
1802
|
+
toolkit.createSelector([selectStageMapping, (_state, stageId) => stageId], (stageMapping, stageId) => {
|
|
1803
|
+
return stageMapping[stageId];
|
|
1804
|
+
})
|
|
1805
|
+
);
|
|
1801
1806
|
const selectStages = toolkit.createSelector(
|
|
1802
1807
|
[selectStageMapping],
|
|
1803
1808
|
(stageMapping) => {
|
|
@@ -2038,6 +2043,7 @@ var __publicField = (obj, key, value) => {
|
|
|
2038
2043
|
issues: {},
|
|
2039
2044
|
attachments: {},
|
|
2040
2045
|
comments: {},
|
|
2046
|
+
updates: {},
|
|
2041
2047
|
visibleStatuses: [IssueStatus.BACKLOG, IssueStatus.SELECTED],
|
|
2042
2048
|
visibleUserIds: null,
|
|
2043
2049
|
recentIssueIds: [],
|
|
@@ -2059,6 +2065,16 @@ var __publicField = (obj, key, value) => {
|
|
|
2059
2065
|
});
|
|
2060
2066
|
},
|
|
2061
2067
|
setIssueAttachments: setAttachments,
|
|
2068
|
+
setIssueUpdates: (state, action) => {
|
|
2069
|
+
if (action.payload.filter(onlyUniqueOfflineIds).length !== action.payload.length) {
|
|
2070
|
+
throw new Error("Tried to use setIssues reducer with duplicate ID's");
|
|
2071
|
+
}
|
|
2072
|
+
const newUpdates = {};
|
|
2073
|
+
for (const update of action.payload) {
|
|
2074
|
+
newUpdates[update.offline_id] = update;
|
|
2075
|
+
}
|
|
2076
|
+
state.updates = newUpdates;
|
|
2077
|
+
},
|
|
2062
2078
|
setActiveIssueId: (state, action) => {
|
|
2063
2079
|
state.activeIssueId = action.payload;
|
|
2064
2080
|
},
|
|
@@ -2070,6 +2086,17 @@ var __publicField = (obj, key, value) => {
|
|
|
2070
2086
|
},
|
|
2071
2087
|
addIssueAttachment: addAttachment,
|
|
2072
2088
|
addIssueAttachments: addAttachments,
|
|
2089
|
+
addIssueUpdate: (state, action) => {
|
|
2090
|
+
if (action.payload.offline_id in state.updates) {
|
|
2091
|
+
throw new Error(`Tried to add duplicate issue update with offline_id: ${action.payload.offline_id}`);
|
|
2092
|
+
}
|
|
2093
|
+
state.updates[action.payload.offline_id] = action.payload;
|
|
2094
|
+
},
|
|
2095
|
+
addIssueUpdates: (state, action) => {
|
|
2096
|
+
for (const update of action.payload) {
|
|
2097
|
+
state.updates[update.offline_id] = update;
|
|
2098
|
+
}
|
|
2099
|
+
},
|
|
2073
2100
|
updateIssue: (state, action) => {
|
|
2074
2101
|
if (action.payload.offline_id in state.issues) {
|
|
2075
2102
|
state.issues[action.payload.offline_id] = {
|
|
@@ -2089,6 +2116,18 @@ var __publicField = (obj, key, value) => {
|
|
|
2089
2116
|
}
|
|
2090
2117
|
},
|
|
2091
2118
|
removeIssueAttachment: removeAttachment,
|
|
2119
|
+
removeIssueUpdate: (state, action) => {
|
|
2120
|
+
if (action.payload in state.updates) {
|
|
2121
|
+
delete state.updates[action.payload];
|
|
2122
|
+
} else {
|
|
2123
|
+
throw new Error(`Failed to remove issue update because offline_id doesn't exist: ${action.payload}`);
|
|
2124
|
+
}
|
|
2125
|
+
},
|
|
2126
|
+
removeIssueUpdates: (state, action) => {
|
|
2127
|
+
for (const updateId of action.payload) {
|
|
2128
|
+
delete state.updates[updateId];
|
|
2129
|
+
}
|
|
2130
|
+
},
|
|
2092
2131
|
removeAttachmentsOfIssue: (state, action) => {
|
|
2093
2132
|
const attachments = Object.values(state.attachments).filter((a) => a.issue === action.payload);
|
|
2094
2133
|
for (const attachment of attachments) {
|
|
@@ -2101,20 +2140,55 @@ var __publicField = (obj, key, value) => {
|
|
|
2101
2140
|
setVisibleUserIds: (state, action) => {
|
|
2102
2141
|
state.visibleUserIds = [...new Set(action.payload)];
|
|
2103
2142
|
},
|
|
2104
|
-
|
|
2143
|
+
// Comments
|
|
2144
|
+
addIssueComment: (state, action) => {
|
|
2145
|
+
if (action.payload.offline_id in state.comments) {
|
|
2146
|
+
throw new Error(
|
|
2147
|
+
`Tried to add issue comment with offline_id: ${action.payload.offline_id} that already exists`
|
|
2148
|
+
);
|
|
2149
|
+
}
|
|
2150
|
+
state.comments[action.payload.offline_id] = action.payload;
|
|
2151
|
+
},
|
|
2152
|
+
addIssueComments: (state, action) => {
|
|
2153
|
+
for (const comment of action.payload) {
|
|
2154
|
+
if (comment.offline_id in state.comments) {
|
|
2155
|
+
throw new Error(
|
|
2156
|
+
`Tried to add issue comment with offline_id: ${comment.offline_id} that already exists`
|
|
2157
|
+
);
|
|
2158
|
+
}
|
|
2159
|
+
}
|
|
2105
2160
|
for (const comment of action.payload) {
|
|
2106
2161
|
state.comments[comment.offline_id] = comment;
|
|
2107
2162
|
}
|
|
2108
2163
|
},
|
|
2164
|
+
setIssueComment: (state, action) => {
|
|
2165
|
+
state.comments[action.payload.offline_id] = action.payload;
|
|
2166
|
+
},
|
|
2167
|
+
setIssueComments: (state, action) => {
|
|
2168
|
+
const newComments = {};
|
|
2169
|
+
for (const comment of action.payload) {
|
|
2170
|
+
newComments[comment.offline_id] = comment;
|
|
2171
|
+
}
|
|
2172
|
+
state.comments = newComments;
|
|
2173
|
+
},
|
|
2109
2174
|
addOrReplaceIssueComment: (state, action) => {
|
|
2110
2175
|
state.comments[action.payload.offline_id] = action.payload;
|
|
2111
2176
|
},
|
|
2112
2177
|
removeIssueComment: (state, action) => {
|
|
2113
|
-
if (action.payload in state.comments) {
|
|
2114
|
-
delete state.comments[action.payload];
|
|
2115
|
-
} else {
|
|
2178
|
+
if (!(action.payload in state.comments)) {
|
|
2116
2179
|
throw new Error(`Failed to remove issue comment because ID doesn't exist: ${action.payload}`);
|
|
2117
2180
|
}
|
|
2181
|
+
delete state.comments[action.payload];
|
|
2182
|
+
},
|
|
2183
|
+
removeIssueComments: (state, action) => {
|
|
2184
|
+
for (const commentId of action.payload) {
|
|
2185
|
+
if (!(commentId in state.comments)) {
|
|
2186
|
+
throw new Error(`Failed to remove issue comment because ID doesn't exist: ${commentId}`);
|
|
2187
|
+
}
|
|
2188
|
+
}
|
|
2189
|
+
for (const commentId of action.payload) {
|
|
2190
|
+
delete state.comments[commentId];
|
|
2191
|
+
}
|
|
2118
2192
|
},
|
|
2119
2193
|
cleanRecentIssues: (state) => {
|
|
2120
2194
|
state.recentIssueIds = state.recentIssueIds.filter((recentIssue) => state.issues[recentIssue.offlineId]);
|
|
@@ -2145,23 +2219,33 @@ var __publicField = (obj, key, value) => {
|
|
|
2145
2219
|
addIssueAttachment,
|
|
2146
2220
|
addIssueAttachments,
|
|
2147
2221
|
addIssue,
|
|
2222
|
+
addIssueUpdate,
|
|
2223
|
+
addIssueUpdates,
|
|
2148
2224
|
addOrReplaceIssueComment,
|
|
2149
2225
|
addToRecentIssues,
|
|
2150
2226
|
cleanRecentIssues,
|
|
2151
2227
|
removeIssueAttachment,
|
|
2152
2228
|
removeAttachmentsOfIssue,
|
|
2153
2229
|
removeIssue,
|
|
2154
|
-
|
|
2230
|
+
removeIssueUpdate,
|
|
2231
|
+
removeIssueUpdates,
|
|
2155
2232
|
removeRecentIssue,
|
|
2156
2233
|
resetRecentIssues,
|
|
2157
2234
|
setActiveIssueId,
|
|
2158
2235
|
setIssueAttachments,
|
|
2159
|
-
|
|
2236
|
+
setIssueUpdates,
|
|
2160
2237
|
setIssues,
|
|
2161
2238
|
setVisibleStatuses,
|
|
2162
2239
|
setVisibleUserIds,
|
|
2163
2240
|
updateIssueAttachment,
|
|
2164
|
-
updateIssue
|
|
2241
|
+
updateIssue,
|
|
2242
|
+
// Commments
|
|
2243
|
+
addIssueComment,
|
|
2244
|
+
addIssueComments,
|
|
2245
|
+
setIssueComment,
|
|
2246
|
+
setIssueComments,
|
|
2247
|
+
removeIssueComment,
|
|
2248
|
+
removeIssueComments
|
|
2165
2249
|
} = issueSlice.actions;
|
|
2166
2250
|
const selectIssueMapping = (state) => state.issueReducer.issues;
|
|
2167
2251
|
const selectRecentIssueIds = (state) => state.issueReducer.recentIssueIds;
|
|
@@ -2232,6 +2316,12 @@ var __publicField = (obj, key, value) => {
|
|
|
2232
2316
|
return Object.values(commentMapping).filter((comment) => comment.issue === issueId);
|
|
2233
2317
|
})
|
|
2234
2318
|
);
|
|
2319
|
+
const selectIssueUpdateMapping = (state) => state.issueReducer.updates;
|
|
2320
|
+
const selectIssueUpdatesOfIssue = restructureCreateSelectorWithArgs(
|
|
2321
|
+
toolkit.createSelector([selectIssueUpdateMapping, (_state, issueId) => issueId], (updates, issueId) => {
|
|
2322
|
+
return Object.values(updates).filter((update) => update.issue === issueId);
|
|
2323
|
+
})
|
|
2324
|
+
);
|
|
2235
2325
|
const selectAttachmentsOfIssue = restructureCreateSelectorWithArgs(
|
|
2236
2326
|
toolkit.createSelector(
|
|
2237
2327
|
[selectIssueAttachments, (_state, issueId) => issueId],
|
|
@@ -2440,6 +2530,16 @@ var __publicField = (obj, key, value) => {
|
|
|
2440
2530
|
OrganizationAccessLevel2[OrganizationAccessLevel2["ADMIN"] = 2] = "ADMIN";
|
|
2441
2531
|
return OrganizationAccessLevel2;
|
|
2442
2532
|
})(OrganizationAccessLevel || {});
|
|
2533
|
+
var IssueUpdateChange = /* @__PURE__ */ ((IssueUpdateChange2) => {
|
|
2534
|
+
IssueUpdateChange2["STATUS"] = "status";
|
|
2535
|
+
IssueUpdateChange2["PRIORITY"] = "priority";
|
|
2536
|
+
IssueUpdateChange2["CATEGORY"] = "category";
|
|
2537
|
+
IssueUpdateChange2["DESCRIPTION"] = "description";
|
|
2538
|
+
IssueUpdateChange2["TITLE"] = "title";
|
|
2539
|
+
IssueUpdateChange2["ASSIGNED_TO"] = "assigned_to";
|
|
2540
|
+
IssueUpdateChange2["DUE_DATE"] = "due_date";
|
|
2541
|
+
return IssueUpdateChange2;
|
|
2542
|
+
})(IssueUpdateChange || {});
|
|
2443
2543
|
var ProjectType = /* @__PURE__ */ ((ProjectType2) => {
|
|
2444
2544
|
ProjectType2[ProjectType2["PERSONAL"] = 0] = "PERSONAL";
|
|
2445
2545
|
ProjectType2[ProjectType2["ORGANIZATION"] = 2] = "ORGANIZATION";
|
|
@@ -3542,6 +3642,14 @@ var __publicField = (obj, key, value) => {
|
|
|
3542
3642
|
return state.userFormReducer.userForms[formId2];
|
|
3543
3643
|
};
|
|
3544
3644
|
const selectSubmissionMapping = (state) => state.userFormReducer.submissions;
|
|
3645
|
+
const selectUserFormSubmission = restructureCreateSelectorWithArgs(
|
|
3646
|
+
toolkit.createSelector(
|
|
3647
|
+
[selectSubmissionMapping, (_state, submissionId) => submissionId],
|
|
3648
|
+
(submissions, submissionId) => {
|
|
3649
|
+
return submissions[submissionId];
|
|
3650
|
+
}
|
|
3651
|
+
)
|
|
3652
|
+
);
|
|
3545
3653
|
const selectSubmissions = toolkit.createSelector([selectSubmissionMapping], (submissions) => Object.values(submissions));
|
|
3546
3654
|
const selectRevisionMapping = (state) => state.userFormReducer.revisions;
|
|
3547
3655
|
const selectRevisions = toolkit.createSelector([selectRevisionMapping], (revisions) => Object.values(revisions));
|
|
@@ -4242,10 +4350,20 @@ var __publicField = (obj, key, value) => {
|
|
|
4242
4350
|
var _a2;
|
|
4243
4351
|
return (_a2 = allMiddleware[0]) == null ? void 0 : _a2.run(action);
|
|
4244
4352
|
}
|
|
4245
|
-
const discardStatuses = [400, 409, 403, 404];
|
|
4353
|
+
const discardStatuses = [400, 409, 403, 404, 405, 500];
|
|
4246
4354
|
const statusMessages = {
|
|
4247
4355
|
403: { title: "Forbidden", description: "You are not authorized to perform this action.", severity: "danger" },
|
|
4248
|
-
404: { title: "Not found", description: "The requested resource was not found.", severity: "danger" }
|
|
4356
|
+
404: { title: "Not found", description: "The requested resource was not found.", severity: "danger" },
|
|
4357
|
+
405: {
|
|
4358
|
+
title: "Not supported",
|
|
4359
|
+
description: "It's not you. It's us. Sorry for the inconvenience.",
|
|
4360
|
+
severity: "danger"
|
|
4361
|
+
},
|
|
4362
|
+
500: {
|
|
4363
|
+
title: "Server error",
|
|
4364
|
+
description: "Our server seems to be experiencing problems at the moment. We have been alerted and will fix the problem as soon as possible.",
|
|
4365
|
+
severity: "danger"
|
|
4366
|
+
}
|
|
4249
4367
|
};
|
|
4250
4368
|
function discard(reason, action, retries = 0) {
|
|
4251
4369
|
var _a2;
|
|
@@ -4418,7 +4536,7 @@ var __publicField = (obj, key, value) => {
|
|
|
4418
4536
|
}
|
|
4419
4537
|
// Attachments aren't models, so we use the OptimisticGenericResult type instead
|
|
4420
4538
|
async addIssueAttachment(attachmentPayload) {
|
|
4421
|
-
const {
|
|
4539
|
+
const { issue, file_sha1, offline_id } = attachmentPayload;
|
|
4422
4540
|
if (!attachmentPayload.file.objectURL) {
|
|
4423
4541
|
throw new Error("Expected attachmentPayload.file.objectURL to be defined.");
|
|
4424
4542
|
}
|
|
@@ -4426,7 +4544,9 @@ var __publicField = (obj, key, value) => {
|
|
|
4426
4544
|
...attachmentPayload,
|
|
4427
4545
|
file: attachmentPayload.file.objectURL,
|
|
4428
4546
|
file_name: attachmentPayload.file.name,
|
|
4429
|
-
file_type: attachmentPayload.file.type
|
|
4547
|
+
file_type: attachmentPayload.file.type,
|
|
4548
|
+
submitted_at: (/* @__PURE__ */ new Date()).toISOString(),
|
|
4549
|
+
created_by: this.client.store.getState().userReducer.currentUser.id
|
|
4430
4550
|
};
|
|
4431
4551
|
await this.client.files.addCache(attachmentPayload.file, file_sha1);
|
|
4432
4552
|
this.client.store.dispatch(addIssueAttachment(offlineAttachment));
|
|
@@ -4438,10 +4558,7 @@ var __publicField = (obj, key, value) => {
|
|
|
4438
4558
|
blocks: [offline_id, issue],
|
|
4439
4559
|
blockers: [file_sha1],
|
|
4440
4560
|
payload: {
|
|
4441
|
-
|
|
4442
|
-
issue,
|
|
4443
|
-
description: description2 ?? "",
|
|
4444
|
-
submitted_at: (/* @__PURE__ */ new Date()).getTime() / 1e3,
|
|
4561
|
+
...offlineAttachment,
|
|
4445
4562
|
...fileProps
|
|
4446
4563
|
}
|
|
4447
4564
|
});
|
|
@@ -4452,7 +4569,7 @@ var __publicField = (obj, key, value) => {
|
|
|
4452
4569
|
return [offlineAttachment, promise];
|
|
4453
4570
|
}
|
|
4454
4571
|
async addComponentAttachment(attachmentPayload) {
|
|
4455
|
-
const {
|
|
4572
|
+
const { component, file_sha1, offline_id } = attachmentPayload;
|
|
4456
4573
|
if (!attachmentPayload.file.objectURL) {
|
|
4457
4574
|
throw new Error("Expected attachmentPayload.file.objectURL to be defined.");
|
|
4458
4575
|
}
|
|
@@ -4460,7 +4577,9 @@ var __publicField = (obj, key, value) => {
|
|
|
4460
4577
|
...attachmentPayload,
|
|
4461
4578
|
file: attachmentPayload.file.objectURL,
|
|
4462
4579
|
file_name: attachmentPayload.file.name,
|
|
4463
|
-
file_type: attachmentPayload.file.type
|
|
4580
|
+
file_type: attachmentPayload.file.type,
|
|
4581
|
+
submitted_at: (/* @__PURE__ */ new Date()).toISOString(),
|
|
4582
|
+
created_by: this.client.store.getState().userReducer.currentUser.id
|
|
4464
4583
|
};
|
|
4465
4584
|
await this.client.files.addCache(attachmentPayload.file, file_sha1);
|
|
4466
4585
|
this.client.store.dispatch(addComponentAttachment(offlineAttachment));
|
|
@@ -4472,10 +4591,7 @@ var __publicField = (obj, key, value) => {
|
|
|
4472
4591
|
blocks: [offline_id, component],
|
|
4473
4592
|
blockers: [file_sha1],
|
|
4474
4593
|
payload: {
|
|
4475
|
-
|
|
4476
|
-
component,
|
|
4477
|
-
description: description2 ?? "",
|
|
4478
|
-
submitted_at: (/* @__PURE__ */ new Date()).getTime() / 1e3,
|
|
4594
|
+
...offlineAttachment,
|
|
4479
4595
|
...fileProps
|
|
4480
4596
|
}
|
|
4481
4597
|
});
|
|
@@ -4486,7 +4602,7 @@ var __publicField = (obj, key, value) => {
|
|
|
4486
4602
|
return [offlineAttachment, promise];
|
|
4487
4603
|
}
|
|
4488
4604
|
async addComponentTypeAttachment(attachmentPayload) {
|
|
4489
|
-
const {
|
|
4605
|
+
const { component_type, file_sha1, offline_id } = attachmentPayload;
|
|
4490
4606
|
if (!attachmentPayload.file.objectURL) {
|
|
4491
4607
|
throw new Error("Expected attachmentPayload.file.objectURL to be defined.");
|
|
4492
4608
|
}
|
|
@@ -4494,7 +4610,9 @@ var __publicField = (obj, key, value) => {
|
|
|
4494
4610
|
...attachmentPayload,
|
|
4495
4611
|
file: attachmentPayload.file.objectURL,
|
|
4496
4612
|
file_name: attachmentPayload.file.name,
|
|
4497
|
-
file_type: attachmentPayload.file.type
|
|
4613
|
+
file_type: attachmentPayload.file.type,
|
|
4614
|
+
submitted_at: (/* @__PURE__ */ new Date()).toISOString(),
|
|
4615
|
+
created_by: this.client.store.getState().userReducer.currentUser.id
|
|
4498
4616
|
};
|
|
4499
4617
|
await this.client.files.addCache(attachmentPayload.file, file_sha1);
|
|
4500
4618
|
this.client.store.dispatch(addComponentTypeAttachment(offlineAttachment));
|
|
@@ -4506,10 +4624,7 @@ var __publicField = (obj, key, value) => {
|
|
|
4506
4624
|
blocks: [offline_id, component_type],
|
|
4507
4625
|
blockers: [file_sha1],
|
|
4508
4626
|
payload: {
|
|
4509
|
-
|
|
4510
|
-
component_type,
|
|
4511
|
-
description: description2 ?? "",
|
|
4512
|
-
submitted_at: (/* @__PURE__ */ new Date()).getTime() / 1e3,
|
|
4627
|
+
...offlineAttachment,
|
|
4513
4628
|
...fileProps
|
|
4514
4629
|
}
|
|
4515
4630
|
});
|
|
@@ -4528,7 +4643,9 @@ var __publicField = (obj, key, value) => {
|
|
|
4528
4643
|
...attachmentPayload,
|
|
4529
4644
|
file: attachmentPayload.file.objectURL,
|
|
4530
4645
|
file_name: attachmentPayload.file.name,
|
|
4531
|
-
file_type: attachmentPayload.file.type
|
|
4646
|
+
file_type: attachmentPayload.file.type,
|
|
4647
|
+
submitted_at: (/* @__PURE__ */ new Date()).toISOString(),
|
|
4648
|
+
created_by: this.client.store.getState().userReducer.currentUser.id
|
|
4532
4649
|
};
|
|
4533
4650
|
await this.client.files.addCache(attachmentPayload.file, file_sha1);
|
|
4534
4651
|
this.client.store.dispatch(addProjectAttachment(offlineAttachment));
|
|
@@ -4568,7 +4685,9 @@ var __publicField = (obj, key, value) => {
|
|
|
4568
4685
|
file_name: file2.name,
|
|
4569
4686
|
file_type: file2.type,
|
|
4570
4687
|
issue: issueId,
|
|
4571
|
-
file_sha1: hash
|
|
4688
|
+
file_sha1: hash,
|
|
4689
|
+
submitted_at: (/* @__PURE__ */ new Date()).toISOString(),
|
|
4690
|
+
created_by: this.client.store.getState().userReducer.currentUser.id
|
|
4572
4691
|
});
|
|
4573
4692
|
return this.addIssueAttachment(attachment);
|
|
4574
4693
|
};
|
|
@@ -4587,7 +4706,9 @@ var __publicField = (obj, key, value) => {
|
|
|
4587
4706
|
file_name: file2.name,
|
|
4588
4707
|
file_type: file2.type,
|
|
4589
4708
|
component: componentId,
|
|
4590
|
-
file_sha1: hash
|
|
4709
|
+
file_sha1: hash,
|
|
4710
|
+
submitted_at: (/* @__PURE__ */ new Date()).toISOString(),
|
|
4711
|
+
created_by: this.client.store.getState().userReducer.currentUser.id
|
|
4591
4712
|
});
|
|
4592
4713
|
return this.addComponentAttachment(attachment);
|
|
4593
4714
|
};
|
|
@@ -4606,7 +4727,9 @@ var __publicField = (obj, key, value) => {
|
|
|
4606
4727
|
file_name: file2.name,
|
|
4607
4728
|
file_type: file2.type,
|
|
4608
4729
|
component_type: componentTypeId,
|
|
4609
|
-
file_sha1: hash
|
|
4730
|
+
file_sha1: hash,
|
|
4731
|
+
submitted_at: (/* @__PURE__ */ new Date()).toISOString(),
|
|
4732
|
+
created_by: this.client.store.getState().userReducer.currentUser.id
|
|
4610
4733
|
});
|
|
4611
4734
|
return this.addComponentTypeAttachment(attachment);
|
|
4612
4735
|
};
|
|
@@ -4625,7 +4748,9 @@ var __publicField = (obj, key, value) => {
|
|
|
4625
4748
|
file_name: file2.name,
|
|
4626
4749
|
file_type: file2.type,
|
|
4627
4750
|
project: projectId,
|
|
4628
|
-
file_sha1: hash
|
|
4751
|
+
file_sha1: hash,
|
|
4752
|
+
submitted_at: (/* @__PURE__ */ new Date()).toISOString(),
|
|
4753
|
+
created_by: this.client.store.getState().userReducer.currentUser.id
|
|
4629
4754
|
});
|
|
4630
4755
|
return this.addProjectAttachment(attachment);
|
|
4631
4756
|
};
|
|
@@ -5702,49 +5827,35 @@ var __publicField = (obj, key, value) => {
|
|
|
5702
5827
|
}
|
|
5703
5828
|
}
|
|
5704
5829
|
class IssueCommentService extends BaseApiService {
|
|
5830
|
+
// Omit author and submitted_at since these will always be set internally
|
|
5705
5831
|
add(comment) {
|
|
5706
|
-
const offlinePayload = offline(comment);
|
|
5707
|
-
const submittedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
5708
5832
|
const { store } = this.client;
|
|
5709
|
-
const offlineComment = {
|
|
5710
|
-
...
|
|
5833
|
+
const offlineComment = offline({
|
|
5834
|
+
...comment,
|
|
5711
5835
|
author: store.getState().userReducer.currentUser.id,
|
|
5712
|
-
|
|
5713
|
-
};
|
|
5714
|
-
store.dispatch(
|
|
5836
|
+
submitted_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
5837
|
+
});
|
|
5838
|
+
store.dispatch(addIssueComment(offlineComment));
|
|
5715
5839
|
const promise = this.enqueueRequest({
|
|
5716
5840
|
description: `${truncate(comment.content, 80)}`,
|
|
5717
5841
|
method: HttpMethod.POST,
|
|
5718
5842
|
url: `/issues/${comment.issue}/comment/`,
|
|
5719
|
-
payload:
|
|
5843
|
+
payload: offlineComment,
|
|
5720
5844
|
blockers: [comment.issue],
|
|
5721
|
-
blocks: [
|
|
5845
|
+
blocks: [offlineComment.offline_id]
|
|
5846
|
+
});
|
|
5847
|
+
promise.catch(() => {
|
|
5848
|
+
store.dispatch(removeIssueComment(offlineComment.offline_id));
|
|
5722
5849
|
});
|
|
5723
5850
|
return [offlineComment, promise];
|
|
5724
5851
|
}
|
|
5725
|
-
|
|
5852
|
+
update(comment) {
|
|
5726
5853
|
const { store } = this.client;
|
|
5727
|
-
const
|
|
5728
|
-
|
|
5729
|
-
|
|
5730
|
-
// TODO: Choose between /issues/comments/in-project/${projectId}/ and /projects/${projectId}/issue-comments/
|
|
5731
|
-
url: `/projects/${store.getState().projectReducer.activeProjectId}/comments/`,
|
|
5732
|
-
blockers: [],
|
|
5733
|
-
blocks: []
|
|
5734
|
-
});
|
|
5735
|
-
let filteredResult = result.filter(onlyUniqueOfflineIds);
|
|
5736
|
-
filteredResult = filteredResult.map((comment) => {
|
|
5737
|
-
return { ...comment };
|
|
5738
|
-
});
|
|
5739
|
-
if (result.length !== filteredResult.length) {
|
|
5740
|
-
console.error(
|
|
5741
|
-
`Received duplicate comments from the API (new length ${filteredResult.length}); filtered in browser.`
|
|
5742
|
-
);
|
|
5854
|
+
const commentToUpdate = store.getState().issueReducer.comments[comment.offline_id];
|
|
5855
|
+
if (!commentToUpdate) {
|
|
5856
|
+
throw new Error(`Comment with offline_id ${comment.offline_id} not found in store`);
|
|
5743
5857
|
}
|
|
5744
|
-
store.dispatch(
|
|
5745
|
-
}
|
|
5746
|
-
update(comment) {
|
|
5747
|
-
this.client.store.dispatch(addOrReplaceIssueComment(comment));
|
|
5858
|
+
store.dispatch(setIssueComment(comment));
|
|
5748
5859
|
const promise = this.enqueueRequest({
|
|
5749
5860
|
description: `Edit comment: ${truncate(comment.content, 80)}`,
|
|
5750
5861
|
method: HttpMethod.PATCH,
|
|
@@ -5753,17 +5864,62 @@ var __publicField = (obj, key, value) => {
|
|
|
5753
5864
|
blockers: [comment.issue],
|
|
5754
5865
|
blocks: [comment.offline_id]
|
|
5755
5866
|
});
|
|
5867
|
+
promise.catch(() => {
|
|
5868
|
+
store.dispatch(setIssueComment(commentToUpdate));
|
|
5869
|
+
});
|
|
5756
5870
|
return [comment, promise];
|
|
5757
5871
|
}
|
|
5758
5872
|
remove(offline_id) {
|
|
5873
|
+
const commentToRemove = this.client.store.getState().issueReducer.comments[offline_id];
|
|
5874
|
+
if (!commentToRemove) {
|
|
5875
|
+
throw new Error(`Comment with offline_id ${offline_id} not found in store`);
|
|
5876
|
+
}
|
|
5759
5877
|
this.client.store.dispatch(removeIssueComment(offline_id));
|
|
5760
|
-
|
|
5878
|
+
const promise = this.enqueueRequest({
|
|
5761
5879
|
description: "Delete comment",
|
|
5762
5880
|
method: HttpMethod.DELETE,
|
|
5763
5881
|
url: `/issues/comments/${offline_id}/`,
|
|
5764
5882
|
blockers: [offline_id],
|
|
5765
5883
|
blocks: []
|
|
5766
5884
|
});
|
|
5885
|
+
promise.catch(() => {
|
|
5886
|
+
this.client.store.dispatch(addIssueComment(commentToRemove));
|
|
5887
|
+
});
|
|
5888
|
+
return promise;
|
|
5889
|
+
}
|
|
5890
|
+
async refreshStore() {
|
|
5891
|
+
const { store } = this.client;
|
|
5892
|
+
const result = await this.enqueueRequest({
|
|
5893
|
+
description: "Get comments",
|
|
5894
|
+
method: HttpMethod.GET,
|
|
5895
|
+
// TODO: Choose between /issues/comments/in-project/${projectId}/ and /projects/${projectId}/issue-comments/
|
|
5896
|
+
url: `/projects/${store.getState().projectReducer.activeProjectId}/comments/`,
|
|
5897
|
+
blockers: [],
|
|
5898
|
+
blocks: []
|
|
5899
|
+
});
|
|
5900
|
+
store.dispatch(setIssueComments(result));
|
|
5901
|
+
}
|
|
5902
|
+
}
|
|
5903
|
+
class IssueUpdateService extends BaseApiService {
|
|
5904
|
+
async refreshStore() {
|
|
5905
|
+
const { store } = this.client;
|
|
5906
|
+
const result = await this.enqueueRequest({
|
|
5907
|
+
description: "Get issue updates",
|
|
5908
|
+
method: HttpMethod.GET,
|
|
5909
|
+
url: `/projects/${store.getState().projectReducer.activeProjectId}/issues/updates/`,
|
|
5910
|
+
blockers: [],
|
|
5911
|
+
blocks: []
|
|
5912
|
+
});
|
|
5913
|
+
let filteredResult = result.filter(onlyUniqueOfflineIds);
|
|
5914
|
+
filteredResult = filteredResult.map((comment) => {
|
|
5915
|
+
return { ...comment };
|
|
5916
|
+
});
|
|
5917
|
+
if (result.length !== filteredResult.length) {
|
|
5918
|
+
console.error(
|
|
5919
|
+
`Received duplicate comments from the API (new length ${filteredResult.length}); filtered in browser.`
|
|
5920
|
+
);
|
|
5921
|
+
}
|
|
5922
|
+
store.dispatch(setIssueUpdates(filteredResult));
|
|
5767
5923
|
}
|
|
5768
5924
|
}
|
|
5769
5925
|
class IssueService extends BaseApiService {
|
|
@@ -5844,7 +6000,83 @@ var __publicField = (obj, key, value) => {
|
|
|
5844
6000
|
return [offlineIssues, promise];
|
|
5845
6001
|
}
|
|
5846
6002
|
update(issue) {
|
|
6003
|
+
const state = this.client.store.getState();
|
|
6004
|
+
const issueToBeUpdated = state.issueReducer.issues[issue.offline_id];
|
|
6005
|
+
if (!issueToBeUpdated) {
|
|
6006
|
+
throw new Error(
|
|
6007
|
+
`Attempting to update an issue with offline_id ${issue.offline_id} that doesn't exist in the store`
|
|
6008
|
+
);
|
|
6009
|
+
}
|
|
5847
6010
|
this.client.store.dispatch(updateIssue(issue));
|
|
6011
|
+
const changes = {};
|
|
6012
|
+
for (const issueUpdateChange of [
|
|
6013
|
+
IssueUpdateChange.TITLE,
|
|
6014
|
+
IssueUpdateChange.DESCRIPTION,
|
|
6015
|
+
IssueUpdateChange.STATUS,
|
|
6016
|
+
IssueUpdateChange.CATEGORY,
|
|
6017
|
+
IssueUpdateChange.PRIORITY,
|
|
6018
|
+
IssueUpdateChange.ASSIGNED_TO,
|
|
6019
|
+
IssueUpdateChange.DUE_DATE
|
|
6020
|
+
]) {
|
|
6021
|
+
if (issueUpdateChange in issue && issue[issueUpdateChange] !== issueToBeUpdated[issueUpdateChange]) {
|
|
6022
|
+
switch (issueUpdateChange) {
|
|
6023
|
+
case "category": {
|
|
6024
|
+
let categoryOrNull = null;
|
|
6025
|
+
const categoryIdOrNull = issue[issueUpdateChange];
|
|
6026
|
+
if (categoryIdOrNull) {
|
|
6027
|
+
categoryOrNull = state.categoryReducer.categories[categoryIdOrNull] ?? null;
|
|
6028
|
+
if (!categoryOrNull)
|
|
6029
|
+
throw new Error(
|
|
6030
|
+
`Trying to update issue category to ${categoryIdOrNull} which does not exist in store`
|
|
6031
|
+
);
|
|
6032
|
+
}
|
|
6033
|
+
changes[issueUpdateChange] = categoryOrNull ? {
|
|
6034
|
+
name: categoryOrNull.name,
|
|
6035
|
+
color: categoryOrNull.color,
|
|
6036
|
+
offline_id: categoryOrNull.offline_id
|
|
6037
|
+
} : null;
|
|
6038
|
+
break;
|
|
6039
|
+
}
|
|
6040
|
+
case "assigned_to": {
|
|
6041
|
+
let userOrNull = null;
|
|
6042
|
+
const userIdOrNull = issue[issueUpdateChange];
|
|
6043
|
+
if (userIdOrNull) {
|
|
6044
|
+
userOrNull = state.userReducer.users[userIdOrNull] ?? null;
|
|
6045
|
+
if (!userOrNull)
|
|
6046
|
+
throw new Error(
|
|
6047
|
+
`Trying to update issue assigned_to to ${userIdOrNull} which does not exist in store`
|
|
6048
|
+
);
|
|
6049
|
+
}
|
|
6050
|
+
changes[issueUpdateChange] = userOrNull ? {
|
|
6051
|
+
full_name: userOrNull.username,
|
|
6052
|
+
id: userOrNull.id
|
|
6053
|
+
} : null;
|
|
6054
|
+
break;
|
|
6055
|
+
}
|
|
6056
|
+
case "description":
|
|
6057
|
+
changes[issueUpdateChange] = issue[issueUpdateChange] ?? null;
|
|
6058
|
+
break;
|
|
6059
|
+
case "title":
|
|
6060
|
+
changes[issueUpdateChange] = issue[issueUpdateChange] ?? null;
|
|
6061
|
+
break;
|
|
6062
|
+
case "priority":
|
|
6063
|
+
changes[issueUpdateChange] = issue[issueUpdateChange];
|
|
6064
|
+
break;
|
|
6065
|
+
case "status":
|
|
6066
|
+
changes[issueUpdateChange] = issue[issueUpdateChange];
|
|
6067
|
+
break;
|
|
6068
|
+
case "due_date":
|
|
6069
|
+
changes[issueUpdateChange] = issue[issueUpdateChange] ? issue[issueUpdateChange] : null;
|
|
6070
|
+
}
|
|
6071
|
+
}
|
|
6072
|
+
}
|
|
6073
|
+
const offlineIssueUpdate = offline({
|
|
6074
|
+
created_by: state.userReducer.currentUser.id,
|
|
6075
|
+
submitted_at: (/* @__PURE__ */ new Date()).toISOString(),
|
|
6076
|
+
issue: issueToBeUpdated.offline_id,
|
|
6077
|
+
changes
|
|
6078
|
+
});
|
|
6079
|
+
this.client.store.dispatch(addIssueUpdate(offlineIssueUpdate));
|
|
5848
6080
|
const promise = this.enqueueRequest({
|
|
5849
6081
|
description: "Edit issue",
|
|
5850
6082
|
method: HttpMethod.PATCH,
|
|
@@ -5853,23 +6085,30 @@ var __publicField = (obj, key, value) => {
|
|
|
5853
6085
|
blockers: [issue.offline_id],
|
|
5854
6086
|
blocks: [issue.offline_id]
|
|
5855
6087
|
});
|
|
6088
|
+
promise.catch(() => {
|
|
6089
|
+
this.client.store.dispatch(updateIssue(issueToBeUpdated));
|
|
6090
|
+
this.client.store.dispatch(removeIssueUpdate(offlineIssueUpdate.offline_id));
|
|
6091
|
+
});
|
|
5856
6092
|
const fullIssue = this.client.store.getState().issueReducer.issues[issue.offline_id];
|
|
5857
6093
|
return [fullIssue, promise];
|
|
5858
6094
|
}
|
|
5859
6095
|
async remove(id) {
|
|
5860
6096
|
const { store } = this.client;
|
|
5861
6097
|
const state = store.getState();
|
|
6098
|
+
const dispatch = store.dispatch;
|
|
5862
6099
|
const backup = state.issueReducer.issues[id];
|
|
5863
6100
|
if (!backup) {
|
|
5864
6101
|
throw new Error(`No issue with id ${id} found in the store`);
|
|
5865
6102
|
}
|
|
5866
6103
|
const attachments = Object.values(state.issueReducer.attachments).filter((a) => a.issue === id);
|
|
5867
6104
|
const attachmentsOfIssue = selectAttachmentsOfIssue(id)(state);
|
|
5868
|
-
|
|
5869
|
-
|
|
5870
|
-
|
|
5871
|
-
|
|
5872
|
-
|
|
6105
|
+
const updatesOfIssue = selectIssueUpdatesOfIssue(id)(state);
|
|
6106
|
+
dispatch(removeIssue(id));
|
|
6107
|
+
dispatch(addActiveProjectIssuesCount(-1));
|
|
6108
|
+
if (attachmentsOfIssue.length > 0)
|
|
6109
|
+
dispatch(removeAttachmentsOfIssue(id));
|
|
6110
|
+
if (updatesOfIssue.length > 0)
|
|
6111
|
+
dispatch(removeIssueUpdates(updatesOfIssue.map(({ offline_id }) => offline_id)));
|
|
5873
6112
|
try {
|
|
5874
6113
|
return await this.enqueueRequest({
|
|
5875
6114
|
description: "Delete issue",
|
|
@@ -5879,9 +6118,10 @@ var __publicField = (obj, key, value) => {
|
|
|
5879
6118
|
blocks: []
|
|
5880
6119
|
});
|
|
5881
6120
|
} catch (e) {
|
|
5882
|
-
|
|
5883
|
-
|
|
5884
|
-
|
|
6121
|
+
dispatch(addIssue(backup));
|
|
6122
|
+
dispatch(addIssueAttachments(attachments));
|
|
6123
|
+
dispatch(addIssueUpdates(updatesOfIssue));
|
|
6124
|
+
dispatch(addActiveProjectIssuesCount(1));
|
|
5885
6125
|
throw e;
|
|
5886
6126
|
}
|
|
5887
6127
|
}
|
|
@@ -6063,6 +6303,7 @@ var __publicField = (obj, key, value) => {
|
|
|
6063
6303
|
store.dispatch(setProjectAttachments(project_attachments));
|
|
6064
6304
|
});
|
|
6065
6305
|
void this.client.documents.refreshStore();
|
|
6306
|
+
void this.client.issueUpdates.refreshStore();
|
|
6066
6307
|
}
|
|
6067
6308
|
store.dispatch(setIsFetchingInitialData(false));
|
|
6068
6309
|
if (overwrite) {
|
|
@@ -7490,7 +7731,7 @@ var __publicField = (obj, key, value) => {
|
|
|
7490
7731
|
* @param request The message to prompt the agent with.
|
|
7491
7732
|
* @param conversationId If continuing an existing message, the UUID of that conversation.
|
|
7492
7733
|
*/
|
|
7493
|
-
prompt(request2, conversationId) {
|
|
7734
|
+
async prompt(request2, conversationId) {
|
|
7494
7735
|
const activeProjectId = this.client.store.getState().projectReducer.activeProjectId;
|
|
7495
7736
|
return this.enqueueRequest({
|
|
7496
7737
|
description: "Prompt agent",
|
|
@@ -7505,6 +7746,16 @@ var __publicField = (obj, key, value) => {
|
|
|
7505
7746
|
queryParams: conversationId ? { conversation_id: conversationId } : {}
|
|
7506
7747
|
});
|
|
7507
7748
|
}
|
|
7749
|
+
async rate(responseId, rating) {
|
|
7750
|
+
return this.enqueueRequest({
|
|
7751
|
+
description: "Rate agent response",
|
|
7752
|
+
method: HttpMethod.PUT,
|
|
7753
|
+
url: `/agents/responses/${responseId}/rate/`,
|
|
7754
|
+
payload: { rating },
|
|
7755
|
+
blockers: ["rate"],
|
|
7756
|
+
blocks: ["rate"]
|
|
7757
|
+
});
|
|
7758
|
+
}
|
|
7508
7759
|
}
|
|
7509
7760
|
class OvermapSDK {
|
|
7510
7761
|
constructor(apiUrl, store) {
|
|
@@ -7520,6 +7771,7 @@ var __publicField = (obj, key, value) => {
|
|
|
7520
7771
|
__publicField(this, "organizationAccess", new OrganizationAccessService(this));
|
|
7521
7772
|
__publicField(this, "issues", new IssueService(this));
|
|
7522
7773
|
__publicField(this, "issueComments", new IssueCommentService(this));
|
|
7774
|
+
__publicField(this, "issueUpdates", new IssueUpdateService(this));
|
|
7523
7775
|
__publicField(this, "workspaces", new WorkspaceService(this));
|
|
7524
7776
|
__publicField(this, "main", new MainService(this));
|
|
7525
7777
|
__publicField(this, "components", new ComponentService(this));
|
|
@@ -12993,52 +13245,54 @@ var __publicField = (obj, key, value) => {
|
|
|
12993
13245
|
Footer,
|
|
12994
13246
|
Loading
|
|
12995
13247
|
};
|
|
12996
|
-
const ImageCard = React.memo(
|
|
12997
|
-
|
|
12998
|
-
|
|
12999
|
-
|
|
13000
|
-
|
|
13001
|
-
|
|
13002
|
-
|
|
13003
|
-
|
|
13004
|
-
|
|
13005
|
-
|
|
13006
|
-
|
|
13007
|
-
|
|
13008
|
-
|
|
13009
|
-
|
|
13010
|
-
|
|
13011
|
-
|
|
13012
|
-
|
|
13013
|
-
|
|
13014
|
-
|
|
13015
|
-
|
|
13016
|
-
|
|
13017
|
-
|
|
13018
|
-
|
|
13019
|
-
|
|
13020
|
-
|
|
13021
|
-
|
|
13022
|
-
|
|
13023
|
-
|
|
13024
|
-
|
|
13025
|
-
|
|
13026
|
-
|
|
13027
|
-
|
|
13028
|
-
|
|
13029
|
-
|
|
13030
|
-
|
|
13031
|
-
|
|
13032
|
-
|
|
13033
|
-
|
|
13034
|
-
|
|
13035
|
-
|
|
13036
|
-
|
|
13037
|
-
|
|
13038
|
-
|
|
13039
|
-
|
|
13040
|
-
|
|
13041
|
-
|
|
13248
|
+
const ImageCard = React.memo(
|
|
13249
|
+
React.forwardRef((props, forwardedRef) => {
|
|
13250
|
+
const { file, alt, error: error2, size, rightSlot, className, truncateLength, ...rest } = props;
|
|
13251
|
+
const fileCardRef = React.useRef(null);
|
|
13252
|
+
const imageInsetRef = React.useRef(null);
|
|
13253
|
+
const fileCardSize = blocks.useSize(fileCardRef);
|
|
13254
|
+
React.useLayoutEffect(() => {
|
|
13255
|
+
if (!imageInsetRef.current || !fileCardSize)
|
|
13256
|
+
return;
|
|
13257
|
+
imageInsetRef.current.style.height = `${fileCardSize.height * 4}px`;
|
|
13258
|
+
}, [fileCardSize]);
|
|
13259
|
+
const fileName2 = React.useMemo(() => {
|
|
13260
|
+
if (!file)
|
|
13261
|
+
return;
|
|
13262
|
+
return truncateLength !== void 0 ? truncate(file.name, truncateLength) : file.name;
|
|
13263
|
+
}, [file, truncateLength]);
|
|
13264
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
13265
|
+
Flex,
|
|
13266
|
+
{
|
|
13267
|
+
className: classNames$1(className, styles$4.ImageCard),
|
|
13268
|
+
width: "100%",
|
|
13269
|
+
direction: "column",
|
|
13270
|
+
position: "relative",
|
|
13271
|
+
height: "max-content",
|
|
13272
|
+
gap: "0",
|
|
13273
|
+
ref: forwardedRef,
|
|
13274
|
+
...rest,
|
|
13275
|
+
children: [
|
|
13276
|
+
!file && !error2 && /* @__PURE__ */ jsxRuntime.jsx(Flex, { width: "100%", height: "100%", align: "center", justify: "center", position: "absolute", children: /* @__PURE__ */ jsxRuntime.jsx(blocks.Spinner, {}) }),
|
|
13277
|
+
/* @__PURE__ */ jsxRuntime.jsx(Inset, { className: styles$4.ImageInset, ref: imageInsetRef, clip: "padding-box", side: "y", pb: "0", children: file && !error2 && /* @__PURE__ */ jsxRuntime.jsx("img", { className: styles$4.Image, src: URL.createObjectURL(file), alt: alt ?? file.name }) }),
|
|
13278
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
13279
|
+
blocks.OvermapItem,
|
|
13280
|
+
{
|
|
13281
|
+
className: classNames$1(styles$4.Footer, {
|
|
13282
|
+
[styles$4.Loading]: !file
|
|
13283
|
+
}),
|
|
13284
|
+
size,
|
|
13285
|
+
ref: fileCardRef,
|
|
13286
|
+
leftSlot: error2 ? /* @__PURE__ */ jsxRuntime.jsx(blocks.RiIcon, { icon: "RiFileWarningLine" }) : file && /* @__PURE__ */ jsxRuntime.jsx(FileIcon, { fileType: file.type }),
|
|
13287
|
+
rightSlot,
|
|
13288
|
+
children: error2 ?? fileName2
|
|
13289
|
+
}
|
|
13290
|
+
)
|
|
13291
|
+
]
|
|
13292
|
+
}
|
|
13293
|
+
);
|
|
13294
|
+
})
|
|
13295
|
+
);
|
|
13042
13296
|
const UploadInput = React.memo((props) => {
|
|
13043
13297
|
var _a2;
|
|
13044
13298
|
const [{ inputId, labelId, size, severity, helpText, showInputOnly, field, fieldProps }, rest] = useFormikInput(props);
|
|
@@ -14175,17 +14429,15 @@ var __publicField = (obj, key, value) => {
|
|
|
14175
14429
|
Action.key
|
|
14176
14430
|
)) }),
|
|
14177
14431
|
/* @__PURE__ */ jsxRuntime.jsx(Box, { display: forMobile(true, "block"), children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
14178
|
-
blocks.
|
|
14432
|
+
blocks.OvermapDropdownMenu,
|
|
14179
14433
|
{
|
|
14180
14434
|
trigger: /* @__PURE__ */ jsxRuntime.jsx(blocks.IconButton, { variant: "ghost", "aria-label": "Actions menu", children: /* @__PURE__ */ jsxRuntime.jsx(blocks.RiIcon, { icon: "RiMore2Line" }) }),
|
|
14181
14435
|
items: actions.map((Action) => {
|
|
14182
14436
|
var _a2;
|
|
14183
14437
|
return {
|
|
14184
|
-
|
|
14185
|
-
|
|
14186
|
-
|
|
14187
|
-
] }, Action.key),
|
|
14188
|
-
onSelect: (_a2 = Action.buttonProps) == null ? void 0 : _a2.onClick
|
|
14438
|
+
leftSlot: /* @__PURE__ */ jsxRuntime.jsx(Action.Icon, {}),
|
|
14439
|
+
children: Action.text,
|
|
14440
|
+
onClick: (_a2 = Action.buttonProps) == null ? void 0 : _a2.onClick
|
|
14189
14441
|
};
|
|
14190
14442
|
})
|
|
14191
14443
|
}
|
|
@@ -14243,10 +14495,8 @@ var __publicField = (obj, key, value) => {
|
|
|
14243
14495
|
const field = FieldTypeToClsMapping[identifier];
|
|
14244
14496
|
const Icon = field.Icon;
|
|
14245
14497
|
return {
|
|
14246
|
-
|
|
14247
|
-
|
|
14248
|
-
/* @__PURE__ */ jsxRuntime.jsx(blocks.Text, { children: field.fieldTypeName })
|
|
14249
|
-
] }, identifier),
|
|
14498
|
+
children: field.fieldTypeName,
|
|
14499
|
+
leftSlot: /* @__PURE__ */ jsxRuntime.jsx(Icon, {}),
|
|
14250
14500
|
value: identifier,
|
|
14251
14501
|
onSelect: () => {
|
|
14252
14502
|
onSelect(identifier);
|
|
@@ -14450,7 +14700,7 @@ var __publicField = (obj, key, value) => {
|
|
|
14450
14700
|
}
|
|
14451
14701
|
),
|
|
14452
14702
|
/* @__PURE__ */ jsxRuntime.jsxs(blocks.Flex, { align: "center", gap: "3", children: [
|
|
14453
|
-
/* @__PURE__ */ jsxRuntime.jsx(blocks.Badge, { className: styles.typeBadge, children: (_f = fieldTypeItems.flat().find((item) => item.value === type)) == null ? void 0 : _f.
|
|
14703
|
+
/* @__PURE__ */ jsxRuntime.jsx(blocks.Badge, { className: styles.typeBadge, children: (_f = fieldTypeItems.flat().find((item) => item.value === type)) == null ? void 0 : _f.children }),
|
|
14454
14704
|
showPopoverInputs && /* @__PURE__ */ jsxRuntime.jsx(FieldSettingsPopover, { popoverInputs, hasError: popoverHasErrors })
|
|
14455
14705
|
] }),
|
|
14456
14706
|
resolvedImage && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
@@ -14811,7 +15061,7 @@ var __publicField = (obj, key, value) => {
|
|
|
14811
15061
|
)),
|
|
14812
15062
|
droppableProvided.placeholder,
|
|
14813
15063
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14814
|
-
blocks.
|
|
15064
|
+
blocks.OvermapDropdownMenu,
|
|
14815
15065
|
{
|
|
14816
15066
|
trigger: /* @__PURE__ */ jsxRuntime.jsxs(blocks.Button, { type: "button", variant: "soft", children: [
|
|
14817
15067
|
/* @__PURE__ */ jsxRuntime.jsx(blocks.RiIcon, { icon: "RiAddLine" }),
|
|
@@ -15246,6 +15496,8 @@ var __publicField = (obj, key, value) => {
|
|
|
15246
15496
|
exports2.IssuePriority = IssuePriority;
|
|
15247
15497
|
exports2.IssueService = IssueService;
|
|
15248
15498
|
exports2.IssueStatus = IssueStatus;
|
|
15499
|
+
exports2.IssueUpdateChange = IssueUpdateChange;
|
|
15500
|
+
exports2.IssueUpdateService = IssueUpdateService;
|
|
15249
15501
|
exports2.LicenseLevel = LicenseLevel;
|
|
15250
15502
|
exports2.LicenseService = LicenseService;
|
|
15251
15503
|
exports2.LicenseStatus = LicenseStatus;
|
|
@@ -15309,6 +15561,10 @@ var __publicField = (obj, key, value) => {
|
|
|
15309
15561
|
exports2.addIssue = addIssue;
|
|
15310
15562
|
exports2.addIssueAttachment = addIssueAttachment;
|
|
15311
15563
|
exports2.addIssueAttachments = addIssueAttachments;
|
|
15564
|
+
exports2.addIssueComment = addIssueComment;
|
|
15565
|
+
exports2.addIssueComments = addIssueComments;
|
|
15566
|
+
exports2.addIssueUpdate = addIssueUpdate;
|
|
15567
|
+
exports2.addIssueUpdates = addIssueUpdates;
|
|
15312
15568
|
exports2.addLicenses = addLicenses;
|
|
15313
15569
|
exports2.addOrReplaceCategories = addOrReplaceCategories;
|
|
15314
15570
|
exports2.addOrReplaceIssueComment = addOrReplaceIssueComment;
|
|
@@ -15468,6 +15724,9 @@ var __publicField = (obj, key, value) => {
|
|
|
15468
15724
|
exports2.removeIssue = removeIssue;
|
|
15469
15725
|
exports2.removeIssueAttachment = removeIssueAttachment;
|
|
15470
15726
|
exports2.removeIssueComment = removeIssueComment;
|
|
15727
|
+
exports2.removeIssueComments = removeIssueComments;
|
|
15728
|
+
exports2.removeIssueUpdate = removeIssueUpdate;
|
|
15729
|
+
exports2.removeIssueUpdates = removeIssueUpdates;
|
|
15471
15730
|
exports2.removeOrganizationAccess = removeOrganizationAccess;
|
|
15472
15731
|
exports2.removeProjectAccess = removeProjectAccess;
|
|
15473
15732
|
exports2.removeProjectAccessesOfProject = removeProjectAccessesOfProject;
|
|
@@ -15569,6 +15828,8 @@ var __publicField = (obj, key, value) => {
|
|
|
15569
15828
|
exports2.selectIssueAttachmentMapping = selectIssueAttachmentMapping;
|
|
15570
15829
|
exports2.selectIssueAttachments = selectIssueAttachments;
|
|
15571
15830
|
exports2.selectIssueMapping = selectIssueMapping;
|
|
15831
|
+
exports2.selectIssueUpdateMapping = selectIssueUpdateMapping;
|
|
15832
|
+
exports2.selectIssueUpdatesOfIssue = selectIssueUpdatesOfIssue;
|
|
15572
15833
|
exports2.selectIssues = selectIssues;
|
|
15573
15834
|
exports2.selectLatestFormRevision = selectLatestFormRevision;
|
|
15574
15835
|
exports2.selectLatestRetryTime = selectLatestRetryTime;
|
|
@@ -15620,6 +15881,7 @@ var __publicField = (obj, key, value) => {
|
|
|
15620
15881
|
exports2.selectSortedOrganizationUsers = selectSortedOrganizationUsers;
|
|
15621
15882
|
exports2.selectSortedProjectUsers = selectSortedProjectUsers;
|
|
15622
15883
|
exports2.selectSortedProjects = selectSortedProjects;
|
|
15884
|
+
exports2.selectStage = selectStage;
|
|
15623
15885
|
exports2.selectStageFormIdsFromStageIds = selectStageFormIdsFromStageIds;
|
|
15624
15886
|
exports2.selectStageMapping = selectStageMapping;
|
|
15625
15887
|
exports2.selectStages = selectStages;
|
|
@@ -15635,6 +15897,7 @@ var __publicField = (obj, key, value) => {
|
|
|
15635
15897
|
exports2.selectUser = selectUser;
|
|
15636
15898
|
exports2.selectUserForm = selectUserForm;
|
|
15637
15899
|
exports2.selectUserFormMapping = selectUserFormMapping;
|
|
15900
|
+
exports2.selectUserFormSubmission = selectUserFormSubmission;
|
|
15638
15901
|
exports2.selectUsersAsMapping = selectUsersAsMapping;
|
|
15639
15902
|
exports2.selectVisibleStatuses = selectVisibleStatuses;
|
|
15640
15903
|
exports2.selectVisibleUserIds = selectVisibleUserIds;
|
|
@@ -15664,7 +15927,9 @@ var __publicField = (obj, key, value) => {
|
|
|
15664
15927
|
exports2.setIsImportingProjectFile = setIsImportingProjectFile;
|
|
15665
15928
|
exports2.setIsLoading = setIsLoading;
|
|
15666
15929
|
exports2.setIssueAttachments = setIssueAttachments;
|
|
15930
|
+
exports2.setIssueComment = setIssueComment;
|
|
15667
15931
|
exports2.setIssueComments = setIssueComments;
|
|
15932
|
+
exports2.setIssueUpdates = setIssueUpdates;
|
|
15668
15933
|
exports2.setIssues = setIssues;
|
|
15669
15934
|
exports2.setLicenses = setLicenses;
|
|
15670
15935
|
exports2.setLoggedIn = setLoggedIn;
|