@overmap-ai/core 1.0.71-fields.1 → 1.0.71-fields.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/overmap-core.js +186 -181
- package/dist/overmap-core.js.map +1 -1
- package/dist/overmap-core.umd.cjs +186 -181
- package/dist/overmap-core.umd.cjs.map +1 -1
- package/dist/sdk/services/AssetTypeFieldValuesAttachmentService.d.ts +2 -3
- package/dist/sdk/services/AssetTypeFieldValuesService.d.ts +2 -2
- package/dist/sdk/services/FormService.d.ts +2 -2
- package/dist/store/slices/assetTypeFieldValuesSlice.d.ts +1 -0
- package/dist/store/slices/assetTypeFieldsSlice.d.ts +1 -0
- package/dist/store/slices/formRevisionSlice.d.ts +1 -2
- package/dist/store/slices/formSlice.d.ts +1 -3
- package/dist/store/slices/formSubmissionSlice.d.ts +0 -2
- package/dist/store/slices/issueTypeFieldsSlice.d.ts +3 -1
- package/package.json +1 -1
package/dist/overmap-core.js
CHANGED
|
@@ -2104,17 +2104,6 @@ const selectFormRevisionsOfForm = restructureCreateSelectorWithArgs(
|
|
|
2104
2104
|
}
|
|
2105
2105
|
)
|
|
2106
2106
|
);
|
|
2107
|
-
const selectLatestFormRevisionByForm = createSelector([selectFormRevisionMapping], (revisions) => {
|
|
2108
|
-
const latestRevisions = {};
|
|
2109
|
-
for (const revision of Object.values(revisions)) {
|
|
2110
|
-
const formId = revision.form;
|
|
2111
|
-
const currentLatestRevision = latestRevisions[formId];
|
|
2112
|
-
if (!currentLatestRevision || currentLatestRevision.revision < revision.revision) {
|
|
2113
|
-
latestRevisions[formId] = revision;
|
|
2114
|
-
}
|
|
2115
|
-
}
|
|
2116
|
-
return latestRevisions;
|
|
2117
|
-
});
|
|
2118
2107
|
const formRevisionReducer = formRevisionsSlice.reducer;
|
|
2119
2108
|
const formAdapter = createModelAdapter((form) => form.offline_id);
|
|
2120
2109
|
const initialState$n = formAdapter.getInitialState({});
|
|
@@ -2139,6 +2128,9 @@ const selectFormMapping = (state) => {
|
|
|
2139
2128
|
const selectForms = createSelector([selectFormMapping], (formsMapping) => {
|
|
2140
2129
|
return Object.values(formsMapping);
|
|
2141
2130
|
});
|
|
2131
|
+
const selectFormById = (formId) => (state) => {
|
|
2132
|
+
return state.formReducer.instances[formId];
|
|
2133
|
+
};
|
|
2142
2134
|
const selectFilteredForms = restructureCreateSelectorWithArgs(
|
|
2143
2135
|
createSelector(
|
|
2144
2136
|
[
|
|
@@ -2164,15 +2156,6 @@ const selectFilteredForms = restructureCreateSelectorWithArgs(
|
|
|
2164
2156
|
{ memoizeOptions: { equalityCheck: shallowEqual } }
|
|
2165
2157
|
)
|
|
2166
2158
|
);
|
|
2167
|
-
const selectFormById = (formId) => (state) => {
|
|
2168
|
-
return state.formReducer.instances[formId];
|
|
2169
|
-
};
|
|
2170
|
-
const selectFormsCount = createSelector([selectFormMapping], (formsMapping) => {
|
|
2171
|
-
return Object.keys(formsMapping).length;
|
|
2172
|
-
});
|
|
2173
|
-
const selectGeneralFormCount = createSelector([selectFormMapping], (formsMapping) => {
|
|
2174
|
-
return Object.values(formsMapping).length;
|
|
2175
|
-
});
|
|
2176
2159
|
const submissionAdapter = createModelAdapter((submission) => submission.offline_id);
|
|
2177
2160
|
const initialState$m = submissionAdapter.getInitialState({});
|
|
2178
2161
|
const formSubmissionSlice = createSlice({
|
|
@@ -2234,43 +2217,6 @@ const selectFormSubmissionsOfForm = restructureCreateSelectorWithArgs(
|
|
|
2234
2217
|
}
|
|
2235
2218
|
)
|
|
2236
2219
|
);
|
|
2237
|
-
const selectFormSubmissionsByFormRevisions = createSelector([selectFormRevisionMapping, selectFormSubmissions], (revisions, submissions) => {
|
|
2238
|
-
var _a2;
|
|
2239
|
-
const submissionMapping = {};
|
|
2240
|
-
for (const revisionId in revisions) {
|
|
2241
|
-
submissionMapping[revisionId] = [];
|
|
2242
|
-
}
|
|
2243
|
-
for (const submission of submissions) {
|
|
2244
|
-
(_a2 = submissionMapping[submission.form_revision]) == null ? void 0 : _a2.push(submission);
|
|
2245
|
-
}
|
|
2246
|
-
return submissionMapping;
|
|
2247
|
-
});
|
|
2248
|
-
const selectSortedFormSubmissionsOfForm = restructureCreateSelectorWithArgs(
|
|
2249
|
-
createSelector(
|
|
2250
|
-
[
|
|
2251
|
-
selectFormRevisionMapping,
|
|
2252
|
-
selectFormSubmissionsByFormRevisions,
|
|
2253
|
-
(_state, formId) => formId
|
|
2254
|
-
],
|
|
2255
|
-
(revisionsMapping, submissionsByRevision, formId) => {
|
|
2256
|
-
const submissionsByFormRevisions = {};
|
|
2257
|
-
for (const revisionId in revisionsMapping) {
|
|
2258
|
-
const revision = revisionsMapping[revisionId];
|
|
2259
|
-
const submissionsOfRevision = submissionsByRevision[revisionId];
|
|
2260
|
-
if (revision && submissionsOfRevision && revision.form === formId) {
|
|
2261
|
-
submissionsByFormRevisions[revisionId] = submissionsOfRevision.sort(
|
|
2262
|
-
(a, b) => a.submitted_at < b.submitted_at ? -1 : 1
|
|
2263
|
-
);
|
|
2264
|
-
}
|
|
2265
|
-
}
|
|
2266
|
-
return Object.entries(submissionsByFormRevisions).sort((a, b) => {
|
|
2267
|
-
const aRevision = revisionsMapping[a[0]];
|
|
2268
|
-
const bRevision = revisionsMapping[b[0]];
|
|
2269
|
-
return formRevisionSortFn(aRevision, bRevision);
|
|
2270
|
-
}).map(([_revisionId, submissions]) => submissions).flat();
|
|
2271
|
-
}
|
|
2272
|
-
)
|
|
2273
|
-
);
|
|
2274
2220
|
const selectFormSubmissionsOfIssue = restructureCreateSelectorWithArgs(
|
|
2275
2221
|
createSelector(
|
|
2276
2222
|
[selectFormSubmissions, (_state, issueId) => issueId],
|
|
@@ -3038,56 +2984,14 @@ const selectIssueAssociationsOfAsset = restructureCreateSelectorWithArgs(
|
|
|
3038
2984
|
)
|
|
3039
2985
|
);
|
|
3040
2986
|
const issueAssociationReducer = issueAssociationSlice.reducer;
|
|
3041
|
-
const issueTypeFieldsAdapter = createModelAdapter((fields) => fields.offline_id);
|
|
3042
|
-
const initialState$7 = issueTypeFieldsAdapter.getInitialState({});
|
|
3043
|
-
const issueTypeFieldsSlice = createSlice({
|
|
3044
|
-
name: "issueTypeFields",
|
|
3045
|
-
initialState: initialState$7,
|
|
3046
|
-
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$7)),
|
|
3047
|
-
reducers: {
|
|
3048
|
-
initializeIssueTypeFields: issueTypeFieldsAdapter.initialize,
|
|
3049
|
-
addIssueTypeFields: issueTypeFieldsAdapter.addOne,
|
|
3050
|
-
addIssueTypeFieldsMany: issueTypeFieldsAdapter.addMany,
|
|
3051
|
-
setIssueTypeFields: issueTypeFieldsAdapter.setOne,
|
|
3052
|
-
setIssueTypeFieldsMany: issueTypeFieldsAdapter.setMany,
|
|
3053
|
-
updateIssueTypeFields: issueTypeFieldsAdapter.updateOne,
|
|
3054
|
-
updateIssueTypeFieldsMany: issueTypeFieldsAdapter.updateMany,
|
|
3055
|
-
deleteIssueTypeFields: issueTypeFieldsAdapter.deleteOne,
|
|
3056
|
-
deleteIssueTypeFieldsMany: issueTypeFieldsAdapter.deleteMany
|
|
3057
|
-
}
|
|
3058
|
-
});
|
|
3059
|
-
const {
|
|
3060
|
-
initializeIssueTypeFields,
|
|
3061
|
-
addIssueTypeFields,
|
|
3062
|
-
addIssueTypeFieldsMany,
|
|
3063
|
-
setIssueTypeFields,
|
|
3064
|
-
setIssueTypeFieldsMany,
|
|
3065
|
-
updateIssueTypeFields,
|
|
3066
|
-
updateIssueTypeFieldsMany,
|
|
3067
|
-
deleteIssueTypeFields,
|
|
3068
|
-
deleteIssueTypeFieldsMany
|
|
3069
|
-
} = issueTypeFieldsSlice.actions;
|
|
3070
|
-
const selectIssueTypeFieldsMapping = (state) => state.issueTypeFieldsReducer.instances;
|
|
3071
|
-
const selectIssueTypeFields = createSelector([selectIssueTypeFieldsMapping], (fieldsMapping) => {
|
|
3072
|
-
return Object.values(fieldsMapping);
|
|
3073
|
-
});
|
|
3074
|
-
const selectIssueTypeFieldsOfIssueType = restructureCreateSelectorWithArgs(
|
|
3075
|
-
createSelector([selectIssueTypeFields, (_state, issueTypeId) => issueTypeId], (fields, issueTypeId) => {
|
|
3076
|
-
return fallbackToEmptyArray(fields.filter((field) => field.issue_type === issueTypeId));
|
|
3077
|
-
})
|
|
3078
|
-
);
|
|
3079
|
-
const selectIssueTypeFieldsById = (fieldsId) => (state) => {
|
|
3080
|
-
return state.issueTypeFieldsReducer.instances[fieldsId];
|
|
3081
|
-
};
|
|
3082
|
-
const issueTypeFieldsReducer = issueTypeFieldsSlice.reducer;
|
|
3083
2987
|
const issueTypeFieldValuesAdapter = createModelAdapter(
|
|
3084
2988
|
(fieldValues) => fieldValues.offline_id
|
|
3085
2989
|
);
|
|
3086
|
-
const initialState$
|
|
2990
|
+
const initialState$7 = issueTypeFieldValuesAdapter.getInitialState({});
|
|
3087
2991
|
const issueTypeFieldValuesSlice = createSlice({
|
|
3088
2992
|
name: "issueTypeFieldValues",
|
|
3089
|
-
initialState: initialState$
|
|
3090
|
-
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$
|
|
2993
|
+
initialState: initialState$7,
|
|
2994
|
+
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$7)),
|
|
3091
2995
|
reducers: {
|
|
3092
2996
|
initializeIssueTypeFieldValues: issueTypeFieldValuesAdapter.initialize,
|
|
3093
2997
|
addIssueTypeFieldValues: issueTypeFieldValuesAdapter.addOne,
|
|
@@ -3124,6 +3028,64 @@ const selectIssueTypeFieldValuesById = (fieldValuesId) => (state) => {
|
|
|
3124
3028
|
return state.issueTypeFieldValuesReducer.instances[fieldValuesId];
|
|
3125
3029
|
};
|
|
3126
3030
|
const issueTypeFieldValuesReducer = issueTypeFieldValuesSlice.reducer;
|
|
3031
|
+
const issueTypeFieldsAdapter = createModelAdapter((fields) => fields.offline_id);
|
|
3032
|
+
const initialState$6 = issueTypeFieldsAdapter.getInitialState({});
|
|
3033
|
+
const issueTypeFieldsSlice = createSlice({
|
|
3034
|
+
name: "issueTypeFields",
|
|
3035
|
+
initialState: initialState$6,
|
|
3036
|
+
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$6)),
|
|
3037
|
+
reducers: {
|
|
3038
|
+
initializeIssueTypeFields: issueTypeFieldsAdapter.initialize,
|
|
3039
|
+
addIssueTypeFields: issueTypeFieldsAdapter.addOne,
|
|
3040
|
+
addIssueTypeFieldsMany: issueTypeFieldsAdapter.addMany,
|
|
3041
|
+
setIssueTypeFields: issueTypeFieldsAdapter.setOne,
|
|
3042
|
+
setIssueTypeFieldsMany: issueTypeFieldsAdapter.setMany,
|
|
3043
|
+
updateIssueTypeFields: issueTypeFieldsAdapter.updateOne,
|
|
3044
|
+
updateIssueTypeFieldsMany: issueTypeFieldsAdapter.updateMany,
|
|
3045
|
+
deleteIssueTypeFields: issueTypeFieldsAdapter.deleteOne,
|
|
3046
|
+
deleteIssueTypeFieldsMany: issueTypeFieldsAdapter.deleteMany
|
|
3047
|
+
}
|
|
3048
|
+
});
|
|
3049
|
+
const {
|
|
3050
|
+
initializeIssueTypeFields,
|
|
3051
|
+
addIssueTypeFields,
|
|
3052
|
+
addIssueTypeFieldsMany,
|
|
3053
|
+
setIssueTypeFields,
|
|
3054
|
+
setIssueTypeFieldsMany,
|
|
3055
|
+
updateIssueTypeFields,
|
|
3056
|
+
updateIssueTypeFieldsMany,
|
|
3057
|
+
deleteIssueTypeFields,
|
|
3058
|
+
deleteIssueTypeFieldsMany
|
|
3059
|
+
} = issueTypeFieldsSlice.actions;
|
|
3060
|
+
const selectIssueTypeFieldsMapping = (state) => state.issueTypeFieldsReducer.instances;
|
|
3061
|
+
const selectIssueTypeFields = createSelector([selectIssueTypeFieldsMapping], (fieldsMapping) => {
|
|
3062
|
+
return Object.values(fieldsMapping);
|
|
3063
|
+
});
|
|
3064
|
+
const selectIssueTypeFieldsOfIssueType = restructureCreateSelectorWithArgs(
|
|
3065
|
+
createSelector([selectIssueTypeFields, (_state, issueTypeId) => issueTypeId], (fields, issueTypeId) => {
|
|
3066
|
+
return fallbackToEmptyArray(fields.filter((field) => field.issue_type === issueTypeId));
|
|
3067
|
+
})
|
|
3068
|
+
);
|
|
3069
|
+
const selectLatestIssueTypeFieldsOfIssueType = restructureCreateSelectorWithArgs(
|
|
3070
|
+
createSelector([selectIssueTypeFields, (_state, id) => id], (fields, id) => {
|
|
3071
|
+
return fields.filter((field) => field.issue_type === id).sort((a, b) => a.submitted_at > b.submitted_at ? -1 : 1)[0];
|
|
3072
|
+
})
|
|
3073
|
+
);
|
|
3074
|
+
const selectIssueTypeValuesOfIssueType = restructureCreateSelectorWithArgs(
|
|
3075
|
+
createSelector(
|
|
3076
|
+
[selectIssueTypeFields, selectIssueTypeFieldValues, (_state, id) => id],
|
|
3077
|
+
(fields, fieldValues, id) => {
|
|
3078
|
+
const fieldsIds = new Set(
|
|
3079
|
+
fields.filter((field) => field.issue_type === id).map((field) => field.offline_id)
|
|
3080
|
+
);
|
|
3081
|
+
return fallbackToEmptyArray(fieldValues.filter((values) => fieldsIds.has(values.fields_revision)));
|
|
3082
|
+
}
|
|
3083
|
+
)
|
|
3084
|
+
);
|
|
3085
|
+
const selectIssueTypeFieldsById = (fieldsId) => (state) => {
|
|
3086
|
+
return state.issueTypeFieldsReducer.instances[fieldsId];
|
|
3087
|
+
};
|
|
3088
|
+
const issueTypeFieldsReducer = issueTypeFieldsSlice.reducer;
|
|
3127
3089
|
const issueTypeFieldsAttachmentAdapter = createModelAdapter(
|
|
3128
3090
|
(attachment) => attachment.offline_id
|
|
3129
3091
|
);
|
|
@@ -3264,6 +3226,11 @@ const selectAssetTypeFieldsOfAssetType = restructureCreateSelectorWithArgs(
|
|
|
3264
3226
|
return fallbackToEmptyArray(fields.filter((field) => field.asset_type === assetTypeId));
|
|
3265
3227
|
})
|
|
3266
3228
|
);
|
|
3229
|
+
const selectLatestAssetTypeFieldsOfAssetType = restructureCreateSelectorWithArgs(
|
|
3230
|
+
createSelector([selectAssetTypeFields, (_state, id) => id], (fields, id) => {
|
|
3231
|
+
return fields.filter((field) => field.asset_type === id).sort((a, b) => a.submitted_at > b.submitted_at ? -1 : 1)[0];
|
|
3232
|
+
})
|
|
3233
|
+
);
|
|
3267
3234
|
const selectAssetTypeFieldsById = (fieldsId) => (state) => {
|
|
3268
3235
|
return state.assetTypeFieldsReducer.instances[fieldsId];
|
|
3269
3236
|
};
|
|
@@ -3308,6 +3275,17 @@ const selectAssetTypeFieldValuesOfAsset = restructureCreateSelectorWithArgs(
|
|
|
3308
3275
|
return fallbackToEmptyArray(fieldValues.filter((fieldValue) => fieldValue.asset === assetId));
|
|
3309
3276
|
})
|
|
3310
3277
|
);
|
|
3278
|
+
const selectAssetTypeValuesOfAssetType = restructureCreateSelectorWithArgs(
|
|
3279
|
+
createSelector(
|
|
3280
|
+
[selectAssetTypeFields, selectAssetTypeFieldValues, (_state, id) => id],
|
|
3281
|
+
(fields, fieldValues, id) => {
|
|
3282
|
+
const fieldsIds = new Set(
|
|
3283
|
+
fields.filter((field) => field.asset_type === id).map((field) => field.offline_id)
|
|
3284
|
+
);
|
|
3285
|
+
return fallbackToEmptyArray(fieldValues.filter((values) => fieldsIds.has(values.fields_revision)));
|
|
3286
|
+
}
|
|
3287
|
+
)
|
|
3288
|
+
);
|
|
3311
3289
|
const selectAssetTypeFieldValuesById = (fieldValuesId) => (state) => {
|
|
3312
3290
|
return state.assetTypeFieldValuesReducer.instances[fieldValuesId];
|
|
3313
3291
|
};
|
|
@@ -5299,15 +5277,7 @@ class IssueTypeService extends BaseApiService {
|
|
|
5299
5277
|
const promise = this.enqueueRequest({
|
|
5300
5278
|
method: HttpMethod.POST,
|
|
5301
5279
|
url: "/issue-types/",
|
|
5302
|
-
|
|
5303
|
-
payload: {
|
|
5304
|
-
offline_id: offlineIssueType.offline_id,
|
|
5305
|
-
submitted_at: offlineIssueType.submitted_at,
|
|
5306
|
-
icon: offlineIssueType.icon,
|
|
5307
|
-
color: offlineIssueType.color,
|
|
5308
|
-
name: offlineIssueType.name,
|
|
5309
|
-
description: offlineIssueType.description
|
|
5310
|
-
},
|
|
5280
|
+
payload: offlineIssueType,
|
|
5311
5281
|
blockers: [],
|
|
5312
5282
|
blocks: [offlineIssueType.offline_id]
|
|
5313
5283
|
});
|
|
@@ -5727,9 +5697,7 @@ class FormService extends BaseUploadService {
|
|
|
5727
5697
|
method: HttpMethod.POST,
|
|
5728
5698
|
url: "/forms/",
|
|
5729
5699
|
payload: {
|
|
5730
|
-
|
|
5731
|
-
offline_id: offlineForm.offline_id,
|
|
5732
|
-
submitted_at: offlineForm.submitted_at,
|
|
5700
|
+
...offlineForm,
|
|
5733
5701
|
initial_revision: {
|
|
5734
5702
|
offline_id: offlineFormRevision.offline_id,
|
|
5735
5703
|
submitted_at: offlineFormRevision.submitted_at,
|
|
@@ -5738,10 +5706,7 @@ class FormService extends BaseUploadService {
|
|
|
5738
5706
|
fields: offlineFormRevision.fields
|
|
5739
5707
|
}
|
|
5740
5708
|
},
|
|
5741
|
-
blockers: [
|
|
5742
|
-
...payload.project ? [payload.project.toString()] : [],
|
|
5743
|
-
...payload.organization ? [payload.organization.toString()] : []
|
|
5744
|
-
],
|
|
5709
|
+
blockers: [],
|
|
5745
5710
|
blocks: [offlineForm.offline_id, offlineFormRevision.offline_id]
|
|
5746
5711
|
});
|
|
5747
5712
|
void formPromise.catch((e) => {
|
|
@@ -7594,24 +7559,39 @@ class AssetTypeFieldValuesService extends BaseApiService {
|
|
|
7594
7559
|
return [offlineAssetTypeFieldValues, promise];
|
|
7595
7560
|
}
|
|
7596
7561
|
bulkAdd(payload, batchSize) {
|
|
7562
|
+
var _a2;
|
|
7597
7563
|
const submittedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
7598
7564
|
const { values } = separateFilesFromValues(payload.values);
|
|
7599
|
-
const
|
|
7600
|
-
const
|
|
7601
|
-
|
|
7565
|
+
const offlineAssetTypeFieldValuesMany = [];
|
|
7566
|
+
const batches = chunkArray(payload.payloads, batchSize ?? payload.payloads.length);
|
|
7567
|
+
const batchPayloads = [];
|
|
7568
|
+
for (const batch of batches) {
|
|
7569
|
+
const assetTypeFieldValuesPayloads = [];
|
|
7570
|
+
for (const payload2 of batch) {
|
|
7571
|
+
const offlineAssetTypeFieldValues = offline({
|
|
7572
|
+
...payload2,
|
|
7573
|
+
values: separateFilesFromValues(payload2.values).values,
|
|
7574
|
+
created_by: (_a2 = this.client.store.getState().userReducer.currentUser) == null ? void 0 : _a2.id,
|
|
7575
|
+
submitted_at: submittedAt
|
|
7576
|
+
});
|
|
7577
|
+
offlineAssetTypeFieldValuesMany.push(offlineAssetTypeFieldValues);
|
|
7578
|
+
assetTypeFieldValuesPayloads.push({
|
|
7579
|
+
offline_id: offlineAssetTypeFieldValues.offline_id,
|
|
7580
|
+
asset: payload2.asset,
|
|
7581
|
+
fields_revision: payload2.fields_revision,
|
|
7582
|
+
published_at: payload2.published_at,
|
|
7583
|
+
values: offlineAssetTypeFieldValues.values
|
|
7584
|
+
});
|
|
7585
|
+
}
|
|
7586
|
+
batchPayloads.push({
|
|
7602
7587
|
submitted_at: submittedAt,
|
|
7603
7588
|
values,
|
|
7604
|
-
field_values:
|
|
7605
|
-
|
|
7606
|
-
|
|
7607
|
-
|
|
7608
|
-
values: values2
|
|
7609
|
-
});
|
|
7610
|
-
})
|
|
7611
|
-
};
|
|
7612
|
-
});
|
|
7589
|
+
field_values: assetTypeFieldValuesPayloads
|
|
7590
|
+
});
|
|
7591
|
+
}
|
|
7592
|
+
this.dispatch(addAssetTypeFieldValuesMany(offlineAssetTypeFieldValuesMany));
|
|
7613
7593
|
const promises = [];
|
|
7614
|
-
for (const payload2 of
|
|
7594
|
+
for (const payload2 of batchPayloads) {
|
|
7615
7595
|
const assetIds = payload2.field_values.map((x) => x.asset);
|
|
7616
7596
|
const assetTypeFieldsIds = payload2.field_values.map((x) => x.fields_revision);
|
|
7617
7597
|
const assetTypeFieldValuesIds = payload2.field_values.map((x) => x.offline_id);
|
|
@@ -7626,9 +7606,11 @@ class AssetTypeFieldValuesService extends BaseApiService {
|
|
|
7626
7606
|
promises.push(promise);
|
|
7627
7607
|
}
|
|
7628
7608
|
void Promise.all(promises).then((results) => {
|
|
7629
|
-
this.dispatch(
|
|
7609
|
+
this.dispatch(updateAssetTypeFieldValuesMany(results.flat()));
|
|
7610
|
+
}).catch(() => {
|
|
7611
|
+
this.dispatch(deleteAssetTypeFieldValuesMany(offlineAssetTypeFieldValuesMany.map((x) => x.offline_id)));
|
|
7630
7612
|
});
|
|
7631
|
-
return promises;
|
|
7613
|
+
return [offlineAssetTypeFieldValuesMany, promises];
|
|
7632
7614
|
}
|
|
7633
7615
|
update(payload) {
|
|
7634
7616
|
const { store } = this.client;
|
|
@@ -7652,7 +7634,13 @@ class AssetTypeFieldValuesService extends BaseApiService {
|
|
|
7652
7634
|
description: "Delete asset type field values",
|
|
7653
7635
|
method: HttpMethod.PATCH,
|
|
7654
7636
|
url: `/asset-type-field-values/${payload.offline_id}/`,
|
|
7655
|
-
payload
|
|
7637
|
+
payload: {
|
|
7638
|
+
...payload,
|
|
7639
|
+
values: {
|
|
7640
|
+
...assetTypeFieldValues.values,
|
|
7641
|
+
...values
|
|
7642
|
+
}
|
|
7643
|
+
},
|
|
7656
7644
|
blockers: [
|
|
7657
7645
|
updatedAssetTypeFieldValues.offline_id,
|
|
7658
7646
|
updatedAssetTypeFieldValues.fields_revision,
|
|
@@ -7706,54 +7694,63 @@ class AssetTypeFieldValuesService extends BaseApiService {
|
|
|
7706
7694
|
}
|
|
7707
7695
|
}
|
|
7708
7696
|
class AssetTypeFieldValuesAttachmentService extends BaseUploadService {
|
|
7709
|
-
async bulkAdd(payloads) {
|
|
7697
|
+
async bulkAdd(payloads, batchSize) {
|
|
7710
7698
|
var _a2;
|
|
7711
7699
|
const submittedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
7712
7700
|
const createdBy = (_a2 = this.client.store.getState().userReducer.currentUser) == null ? void 0 : _a2.id;
|
|
7713
|
-
const
|
|
7701
|
+
const batches = chunkArray(payloads, batchSize ?? payloads.length);
|
|
7714
7702
|
const offlineAssetTypeFieldValuesAttachments = [];
|
|
7715
|
-
const
|
|
7716
|
-
for (const
|
|
7717
|
-
const
|
|
7718
|
-
const
|
|
7719
|
-
|
|
7720
|
-
|
|
7721
|
-
|
|
7722
|
-
|
|
7723
|
-
|
|
7724
|
-
|
|
7725
|
-
|
|
7726
|
-
|
|
7727
|
-
|
|
7703
|
+
const batchPayloads = [];
|
|
7704
|
+
for (const batch of batches) {
|
|
7705
|
+
const filePayloads = {};
|
|
7706
|
+
const attachmentPayloads = [];
|
|
7707
|
+
for (const payload of batch) {
|
|
7708
|
+
const { fieldValuesId, fieldIdentifier, file } = payload;
|
|
7709
|
+
const filePayload = await this.getFilePayload(file);
|
|
7710
|
+
if (!(filePayload.sha1 in filePayloads))
|
|
7711
|
+
filePayloads[filePayload.sha1] = filePayload;
|
|
7712
|
+
const offlineAssetTypeFieldValuesAttachment = offline({
|
|
7713
|
+
file: URL.createObjectURL(file),
|
|
7714
|
+
file_type: file.type,
|
|
7715
|
+
file_name: file.name,
|
|
7716
|
+
file_sha1: filePayload.sha1,
|
|
7717
|
+
created_by: createdBy,
|
|
7718
|
+
field_values: fieldValuesId,
|
|
7719
|
+
submitted_at: submittedAt,
|
|
7720
|
+
field_identifier: fieldIdentifier
|
|
7721
|
+
});
|
|
7722
|
+
offlineAssetTypeFieldValuesAttachments.push(offlineAssetTypeFieldValuesAttachment);
|
|
7723
|
+
const attachmentPayload = {
|
|
7724
|
+
offline_id: offlineAssetTypeFieldValuesAttachment.offline_id,
|
|
7725
|
+
file_name: file.name,
|
|
7726
|
+
file_sha1: filePayload.sha1,
|
|
7727
|
+
file_extension: filePayload.extension,
|
|
7728
|
+
field_identifier: fieldIdentifier,
|
|
7729
|
+
field_values: fieldValuesId
|
|
7730
|
+
};
|
|
7731
|
+
attachmentPayloads.push(attachmentPayload);
|
|
7732
|
+
}
|
|
7733
|
+
batchPayloads.push({
|
|
7728
7734
|
submitted_at: submittedAt,
|
|
7729
|
-
|
|
7735
|
+
attachments: attachmentPayloads,
|
|
7736
|
+
files: Object.values(filePayloads)
|
|
7730
7737
|
});
|
|
7731
|
-
offlineAssetTypeFieldValuesAttachments.push(offlineAssetTypeFieldValuesAttachment);
|
|
7732
|
-
const attachmentPayload = {
|
|
7733
|
-
offline_id: offlineAssetTypeFieldValuesAttachment.offline_id,
|
|
7734
|
-
file_name: file.name,
|
|
7735
|
-
file_sha1: filePayload.sha1,
|
|
7736
|
-
file_extension: filePayload.extension,
|
|
7737
|
-
field_identifier: fieldIdentifier,
|
|
7738
|
-
field_values: fieldValuesId
|
|
7739
|
-
};
|
|
7740
|
-
attachmentPayloads.push(attachmentPayload);
|
|
7741
7738
|
}
|
|
7742
7739
|
this.dispatch(addAssetTypeFieldValuesAttachments(offlineAssetTypeFieldValuesAttachments));
|
|
7743
|
-
const
|
|
7744
|
-
|
|
7745
|
-
|
|
7746
|
-
|
|
7747
|
-
|
|
7748
|
-
|
|
7749
|
-
|
|
7750
|
-
|
|
7751
|
-
}
|
|
7752
|
-
blockers: offlineAssetTypeFieldValuesAttachments.map((attachment) => attachment.field_values),
|
|
7753
|
-
blocks: offlineAssetTypeFieldValuesAttachments.map((attachment) => attachment.offline_id)
|
|
7740
|
+
const promises = batchPayloads.map((payload) => {
|
|
7741
|
+
return this.enqueueRequest({
|
|
7742
|
+
description: "Add asset type field values attachments",
|
|
7743
|
+
method: HttpMethod.POST,
|
|
7744
|
+
url: "/asset-type-field-values-attachments/bulk/",
|
|
7745
|
+
payload,
|
|
7746
|
+
blockers: payload.attachments.map((payload2) => payload2.field_values),
|
|
7747
|
+
blocks: payload.attachments.map((payload2) => payload2.offline_id)
|
|
7748
|
+
});
|
|
7754
7749
|
});
|
|
7755
|
-
|
|
7756
|
-
|
|
7750
|
+
Promise.all(promises).then((result) => {
|
|
7751
|
+
for (const res of result)
|
|
7752
|
+
this.processPresignedUrls(res.presigned_urls);
|
|
7753
|
+
const attachments = result.flatMap((res) => res.attachments);
|
|
7757
7754
|
this.dispatch(updateAssetTypeFieldValuesAttachments(attachments));
|
|
7758
7755
|
}).catch((error) => {
|
|
7759
7756
|
this.dispatch(
|
|
@@ -7763,7 +7760,10 @@ class AssetTypeFieldValuesAttachmentService extends BaseUploadService {
|
|
|
7763
7760
|
);
|
|
7764
7761
|
throw error;
|
|
7765
7762
|
});
|
|
7766
|
-
return [
|
|
7763
|
+
return [
|
|
7764
|
+
offlineAssetTypeFieldValuesAttachments,
|
|
7765
|
+
promises.map((promise) => promise.then(({ attachments }) => attachments))
|
|
7766
|
+
];
|
|
7767
7767
|
}
|
|
7768
7768
|
async bulkDelete(ids) {
|
|
7769
7769
|
const { store } = this.client;
|
|
@@ -7786,7 +7786,7 @@ class AssetTypeFieldValuesAttachmentService extends BaseUploadService {
|
|
|
7786
7786
|
}
|
|
7787
7787
|
async refreshStore(projectId) {
|
|
7788
7788
|
const result = await this.enqueueRequest({
|
|
7789
|
-
description: "
|
|
7789
|
+
description: "Get asset type field values attachments",
|
|
7790
7790
|
method: HttpMethod.GET,
|
|
7791
7791
|
url: "/asset-type-field-values-attachments/",
|
|
7792
7792
|
queryParams: {
|
|
@@ -8057,7 +8057,13 @@ class IssueTypeFieldValuesService extends BaseApiService {
|
|
|
8057
8057
|
description: "Update issue type field values",
|
|
8058
8058
|
method: HttpMethod.PATCH,
|
|
8059
8059
|
url: `/issue-type-field-values/${payload.offline_id}/`,
|
|
8060
|
-
payload
|
|
8060
|
+
payload: {
|
|
8061
|
+
...payload,
|
|
8062
|
+
values: {
|
|
8063
|
+
...issueTypeFieldValues.values,
|
|
8064
|
+
...values
|
|
8065
|
+
}
|
|
8066
|
+
},
|
|
8061
8067
|
blockers: [
|
|
8062
8068
|
updatedIssueTypeFieldValues.offline_id,
|
|
8063
8069
|
updatedIssueTypeFieldValues.fields_revision,
|
|
@@ -8539,6 +8545,7 @@ export {
|
|
|
8539
8545
|
selectAssetTypeFieldsMapping,
|
|
8540
8546
|
selectAssetTypeFieldsOfAssetType,
|
|
8541
8547
|
selectAssetTypeStagesMapping,
|
|
8548
|
+
selectAssetTypeValuesOfAssetType,
|
|
8542
8549
|
selectAssetTypes,
|
|
8543
8550
|
selectAssetTypesByIds,
|
|
8544
8551
|
selectAssetTypesMapping,
|
|
@@ -8596,14 +8603,11 @@ export {
|
|
|
8596
8603
|
selectFormSubmissionAttachmentsMapping,
|
|
8597
8604
|
selectFormSubmissionById,
|
|
8598
8605
|
selectFormSubmissions,
|
|
8599
|
-
selectFormSubmissionsByFormRevisions,
|
|
8600
8606
|
selectFormSubmissionsMapping,
|
|
8601
8607
|
selectFormSubmissionsOfAsset,
|
|
8602
8608
|
selectFormSubmissionsOfForm,
|
|
8603
8609
|
selectFormSubmissionsOfIssue,
|
|
8604
8610
|
selectForms,
|
|
8605
|
-
selectFormsCount,
|
|
8606
|
-
selectGeneralFormCount,
|
|
8607
8611
|
selectGeoImageById,
|
|
8608
8612
|
selectGeoImageMapping,
|
|
8609
8613
|
selectGeoImages,
|
|
@@ -8640,6 +8644,7 @@ export {
|
|
|
8640
8644
|
selectIssueTypeFieldsMapping,
|
|
8641
8645
|
selectIssueTypeFieldsOfIssueType,
|
|
8642
8646
|
selectIssueTypeMapping,
|
|
8647
|
+
selectIssueTypeValuesOfIssueType,
|
|
8643
8648
|
selectIssueTypes,
|
|
8644
8649
|
selectIssueTypesByIds,
|
|
8645
8650
|
selectIssueTypesOfOrganization,
|
|
@@ -8648,8 +8653,9 @@ export {
|
|
|
8648
8653
|
selectIssuesByIds,
|
|
8649
8654
|
selectIssuesOfIssueType,
|
|
8650
8655
|
selectIssuesOfIssueTypeCount,
|
|
8651
|
-
|
|
8656
|
+
selectLatestAssetTypeFieldsOfAssetType,
|
|
8652
8657
|
selectLatestFormRevisionOfForm,
|
|
8658
|
+
selectLatestIssueTypeFieldsOfIssueType,
|
|
8653
8659
|
selectLatestRetryTime,
|
|
8654
8660
|
selectLicense,
|
|
8655
8661
|
selectLicenseForProject,
|
|
@@ -8686,7 +8692,6 @@ export {
|
|
|
8686
8692
|
selectProjectsOfOrganization,
|
|
8687
8693
|
selectRehydrated,
|
|
8688
8694
|
selectRootDocuments,
|
|
8689
|
-
selectSortedFormSubmissionsOfForm,
|
|
8690
8695
|
selectSortedOrganizationUsers,
|
|
8691
8696
|
selectSortedProjectUsers,
|
|
8692
8697
|
selectStageFormIdsFromStageIds,
|