@overmap-ai/core 1.0.71-fields.0 → 1.0.71-fields.10
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 +240 -174
- package/dist/overmap-core.js.map +1 -1
- package/dist/overmap-core.umd.cjs +240 -174
- 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/FormRevisionService.d.ts +2 -2
- package/dist/sdk/services/FormService.d.ts +2 -2
- package/dist/sdk/services/index.d.ts +1 -0
- 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
|
});
|
|
@@ -7394,6 +7364,61 @@ class FormSubmissionAttachmentService extends BaseUploadService {
|
|
|
7394
7364
|
this.dispatch(initializeFormSubmissionAttachments(result));
|
|
7395
7365
|
}
|
|
7396
7366
|
}
|
|
7367
|
+
class FormRevisionService extends BaseUploadService {
|
|
7368
|
+
add(payload) {
|
|
7369
|
+
var _a2;
|
|
7370
|
+
const { store } = this.client;
|
|
7371
|
+
const state = store.getState();
|
|
7372
|
+
const createdBy = (_a2 = state.userReducer.currentUser) == null ? void 0 : _a2.id;
|
|
7373
|
+
const offlineFormRevision = offline({
|
|
7374
|
+
...payload,
|
|
7375
|
+
created_by: createdBy,
|
|
7376
|
+
revision: "Pending",
|
|
7377
|
+
submitted_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
7378
|
+
});
|
|
7379
|
+
this.dispatch(addFormRevision(offlineFormRevision));
|
|
7380
|
+
const promise = this.enqueueRequest({
|
|
7381
|
+
description: "Create form revision",
|
|
7382
|
+
method: HttpMethod.POST,
|
|
7383
|
+
url: "/form-revisions/",
|
|
7384
|
+
payload: offlineFormRevision,
|
|
7385
|
+
blockers: [payload.form],
|
|
7386
|
+
blocks: [offlineFormRevision.offline_id]
|
|
7387
|
+
});
|
|
7388
|
+
void promise.then((result) => {
|
|
7389
|
+
this.dispatch(setFormRevision(result));
|
|
7390
|
+
}).catch(() => {
|
|
7391
|
+
this.dispatch(deleteFormRevision(offlineFormRevision.offline_id));
|
|
7392
|
+
});
|
|
7393
|
+
return [offlineFormRevision, promise];
|
|
7394
|
+
}
|
|
7395
|
+
async refreshStore(projectId, organizationId) {
|
|
7396
|
+
let formRevisions = [];
|
|
7397
|
+
const projectFormRevisions = await this.enqueueRequest({
|
|
7398
|
+
description: "Fetch project form revisions",
|
|
7399
|
+
method: HttpMethod.GET,
|
|
7400
|
+
url: "/form-revisions/",
|
|
7401
|
+
queryParams: {
|
|
7402
|
+
project: projectId.toString()
|
|
7403
|
+
},
|
|
7404
|
+
blockers: [projectId.toString()],
|
|
7405
|
+
blocks: []
|
|
7406
|
+
});
|
|
7407
|
+
formRevisions = formRevisions.concat(projectFormRevisions);
|
|
7408
|
+
const organizationFormRevisions = await this.enqueueRequest({
|
|
7409
|
+
description: "Fetch organization form revisions",
|
|
7410
|
+
method: HttpMethod.GET,
|
|
7411
|
+
url: "/form-revisions/",
|
|
7412
|
+
queryParams: {
|
|
7413
|
+
organization: organizationId.toString()
|
|
7414
|
+
},
|
|
7415
|
+
blockers: [organizationId.toString()],
|
|
7416
|
+
blocks: []
|
|
7417
|
+
});
|
|
7418
|
+
formRevisions = formRevisions.concat(organizationFormRevisions);
|
|
7419
|
+
this.dispatch(initializeFormRevisions(formRevisions));
|
|
7420
|
+
}
|
|
7421
|
+
}
|
|
7397
7422
|
class AssetTypeFieldsAttachmentService extends BaseUploadService {
|
|
7398
7423
|
async bulkAdd(payloads) {
|
|
7399
7424
|
var _a2;
|
|
@@ -7539,24 +7564,39 @@ class AssetTypeFieldValuesService extends BaseApiService {
|
|
|
7539
7564
|
return [offlineAssetTypeFieldValues, promise];
|
|
7540
7565
|
}
|
|
7541
7566
|
bulkAdd(payload, batchSize) {
|
|
7567
|
+
var _a2;
|
|
7542
7568
|
const submittedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
7543
7569
|
const { values } = separateFilesFromValues(payload.values);
|
|
7544
|
-
const
|
|
7545
|
-
const
|
|
7546
|
-
|
|
7570
|
+
const offlineAssetTypeFieldValuesMany = [];
|
|
7571
|
+
const batches = chunkArray(payload.payloads, batchSize ?? payload.payloads.length);
|
|
7572
|
+
const batchPayloads = [];
|
|
7573
|
+
for (const batch of batches) {
|
|
7574
|
+
const assetTypeFieldValuesPayloads = [];
|
|
7575
|
+
for (const payload2 of batch) {
|
|
7576
|
+
const offlineAssetTypeFieldValues = offline({
|
|
7577
|
+
...payload2,
|
|
7578
|
+
values: separateFilesFromValues(payload2.values).values,
|
|
7579
|
+
created_by: (_a2 = this.client.store.getState().userReducer.currentUser) == null ? void 0 : _a2.id,
|
|
7580
|
+
submitted_at: submittedAt
|
|
7581
|
+
});
|
|
7582
|
+
offlineAssetTypeFieldValuesMany.push(offlineAssetTypeFieldValues);
|
|
7583
|
+
assetTypeFieldValuesPayloads.push({
|
|
7584
|
+
offline_id: offlineAssetTypeFieldValues.offline_id,
|
|
7585
|
+
asset: payload2.asset,
|
|
7586
|
+
fields_revision: payload2.fields_revision,
|
|
7587
|
+
published_at: payload2.published_at,
|
|
7588
|
+
values: offlineAssetTypeFieldValues.values
|
|
7589
|
+
});
|
|
7590
|
+
}
|
|
7591
|
+
batchPayloads.push({
|
|
7547
7592
|
submitted_at: submittedAt,
|
|
7548
7593
|
values,
|
|
7549
|
-
field_values:
|
|
7550
|
-
|
|
7551
|
-
|
|
7552
|
-
|
|
7553
|
-
values: values2
|
|
7554
|
-
});
|
|
7555
|
-
})
|
|
7556
|
-
};
|
|
7557
|
-
});
|
|
7594
|
+
field_values: assetTypeFieldValuesPayloads
|
|
7595
|
+
});
|
|
7596
|
+
}
|
|
7597
|
+
this.dispatch(addAssetTypeFieldValuesMany(offlineAssetTypeFieldValuesMany));
|
|
7558
7598
|
const promises = [];
|
|
7559
|
-
for (const payload2 of
|
|
7599
|
+
for (const payload2 of batchPayloads) {
|
|
7560
7600
|
const assetIds = payload2.field_values.map((x) => x.asset);
|
|
7561
7601
|
const assetTypeFieldsIds = payload2.field_values.map((x) => x.fields_revision);
|
|
7562
7602
|
const assetTypeFieldValuesIds = payload2.field_values.map((x) => x.offline_id);
|
|
@@ -7571,9 +7611,11 @@ class AssetTypeFieldValuesService extends BaseApiService {
|
|
|
7571
7611
|
promises.push(promise);
|
|
7572
7612
|
}
|
|
7573
7613
|
void Promise.all(promises).then((results) => {
|
|
7574
|
-
this.dispatch(
|
|
7614
|
+
this.dispatch(updateAssetTypeFieldValuesMany(results.flat()));
|
|
7615
|
+
}).catch(() => {
|
|
7616
|
+
this.dispatch(deleteAssetTypeFieldValuesMany(offlineAssetTypeFieldValuesMany.map((x) => x.offline_id)));
|
|
7575
7617
|
});
|
|
7576
|
-
return promises;
|
|
7618
|
+
return [offlineAssetTypeFieldValuesMany, promises];
|
|
7577
7619
|
}
|
|
7578
7620
|
update(payload) {
|
|
7579
7621
|
const { store } = this.client;
|
|
@@ -7597,7 +7639,13 @@ class AssetTypeFieldValuesService extends BaseApiService {
|
|
|
7597
7639
|
description: "Delete asset type field values",
|
|
7598
7640
|
method: HttpMethod.PATCH,
|
|
7599
7641
|
url: `/asset-type-field-values/${payload.offline_id}/`,
|
|
7600
|
-
payload
|
|
7642
|
+
payload: {
|
|
7643
|
+
...payload,
|
|
7644
|
+
values: {
|
|
7645
|
+
...assetTypeFieldValues.values,
|
|
7646
|
+
...values
|
|
7647
|
+
}
|
|
7648
|
+
},
|
|
7601
7649
|
blockers: [
|
|
7602
7650
|
updatedAssetTypeFieldValues.offline_id,
|
|
7603
7651
|
updatedAssetTypeFieldValues.fields_revision,
|
|
@@ -7651,54 +7699,63 @@ class AssetTypeFieldValuesService extends BaseApiService {
|
|
|
7651
7699
|
}
|
|
7652
7700
|
}
|
|
7653
7701
|
class AssetTypeFieldValuesAttachmentService extends BaseUploadService {
|
|
7654
|
-
async bulkAdd(payloads) {
|
|
7702
|
+
async bulkAdd(payloads, batchSize) {
|
|
7655
7703
|
var _a2;
|
|
7656
7704
|
const submittedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
7657
7705
|
const createdBy = (_a2 = this.client.store.getState().userReducer.currentUser) == null ? void 0 : _a2.id;
|
|
7658
|
-
const
|
|
7706
|
+
const batches = chunkArray(payloads, batchSize ?? payloads.length);
|
|
7659
7707
|
const offlineAssetTypeFieldValuesAttachments = [];
|
|
7660
|
-
const
|
|
7661
|
-
for (const
|
|
7662
|
-
const
|
|
7663
|
-
const
|
|
7664
|
-
|
|
7665
|
-
|
|
7666
|
-
|
|
7667
|
-
|
|
7668
|
-
|
|
7669
|
-
|
|
7670
|
-
|
|
7671
|
-
|
|
7672
|
-
|
|
7708
|
+
const batchPayloads = [];
|
|
7709
|
+
for (const batch of batches) {
|
|
7710
|
+
const filePayloads = {};
|
|
7711
|
+
const attachmentPayloads = [];
|
|
7712
|
+
for (const payload of batch) {
|
|
7713
|
+
const { fieldValuesId, fieldIdentifier, file } = payload;
|
|
7714
|
+
const filePayload = await this.getFilePayload(file);
|
|
7715
|
+
if (!(filePayload.sha1 in filePayloads))
|
|
7716
|
+
filePayloads[filePayload.sha1] = filePayload;
|
|
7717
|
+
const offlineAssetTypeFieldValuesAttachment = offline({
|
|
7718
|
+
file: URL.createObjectURL(file),
|
|
7719
|
+
file_type: file.type,
|
|
7720
|
+
file_name: file.name,
|
|
7721
|
+
file_sha1: filePayload.sha1,
|
|
7722
|
+
created_by: createdBy,
|
|
7723
|
+
field_values: fieldValuesId,
|
|
7724
|
+
submitted_at: submittedAt,
|
|
7725
|
+
field_identifier: fieldIdentifier
|
|
7726
|
+
});
|
|
7727
|
+
offlineAssetTypeFieldValuesAttachments.push(offlineAssetTypeFieldValuesAttachment);
|
|
7728
|
+
const attachmentPayload = {
|
|
7729
|
+
offline_id: offlineAssetTypeFieldValuesAttachment.offline_id,
|
|
7730
|
+
file_name: file.name,
|
|
7731
|
+
file_sha1: filePayload.sha1,
|
|
7732
|
+
file_extension: filePayload.extension,
|
|
7733
|
+
field_identifier: fieldIdentifier,
|
|
7734
|
+
field_values: fieldValuesId
|
|
7735
|
+
};
|
|
7736
|
+
attachmentPayloads.push(attachmentPayload);
|
|
7737
|
+
}
|
|
7738
|
+
batchPayloads.push({
|
|
7673
7739
|
submitted_at: submittedAt,
|
|
7674
|
-
|
|
7740
|
+
attachments: attachmentPayloads,
|
|
7741
|
+
files: Object.values(filePayloads)
|
|
7675
7742
|
});
|
|
7676
|
-
offlineAssetTypeFieldValuesAttachments.push(offlineAssetTypeFieldValuesAttachment);
|
|
7677
|
-
const attachmentPayload = {
|
|
7678
|
-
offline_id: offlineAssetTypeFieldValuesAttachment.offline_id,
|
|
7679
|
-
file_name: file.name,
|
|
7680
|
-
file_sha1: filePayload.sha1,
|
|
7681
|
-
file_extension: filePayload.extension,
|
|
7682
|
-
field_identifier: fieldIdentifier,
|
|
7683
|
-
field_values: fieldValuesId
|
|
7684
|
-
};
|
|
7685
|
-
attachmentPayloads.push(attachmentPayload);
|
|
7686
7743
|
}
|
|
7687
7744
|
this.dispatch(addAssetTypeFieldValuesAttachments(offlineAssetTypeFieldValuesAttachments));
|
|
7688
|
-
const
|
|
7689
|
-
|
|
7690
|
-
|
|
7691
|
-
|
|
7692
|
-
|
|
7693
|
-
|
|
7694
|
-
|
|
7695
|
-
|
|
7696
|
-
}
|
|
7697
|
-
blockers: offlineAssetTypeFieldValuesAttachments.map((attachment) => attachment.field_values),
|
|
7698
|
-
blocks: offlineAssetTypeFieldValuesAttachments.map((attachment) => attachment.offline_id)
|
|
7745
|
+
const promises = batchPayloads.map((payload) => {
|
|
7746
|
+
return this.enqueueRequest({
|
|
7747
|
+
description: "Add asset type field values attachments",
|
|
7748
|
+
method: HttpMethod.POST,
|
|
7749
|
+
url: "/asset-type-field-values-attachments/bulk/",
|
|
7750
|
+
payload,
|
|
7751
|
+
blockers: payload.attachments.map((payload2) => payload2.field_values),
|
|
7752
|
+
blocks: payload.attachments.map((payload2) => payload2.offline_id)
|
|
7753
|
+
});
|
|
7699
7754
|
});
|
|
7700
|
-
|
|
7701
|
-
|
|
7755
|
+
Promise.all(promises).then((result) => {
|
|
7756
|
+
for (const res of result)
|
|
7757
|
+
this.processPresignedUrls(res.presigned_urls);
|
|
7758
|
+
const attachments = result.flatMap((res) => res.attachments);
|
|
7702
7759
|
this.dispatch(updateAssetTypeFieldValuesAttachments(attachments));
|
|
7703
7760
|
}).catch((error) => {
|
|
7704
7761
|
this.dispatch(
|
|
@@ -7708,7 +7765,10 @@ class AssetTypeFieldValuesAttachmentService extends BaseUploadService {
|
|
|
7708
7765
|
);
|
|
7709
7766
|
throw error;
|
|
7710
7767
|
});
|
|
7711
|
-
return [
|
|
7768
|
+
return [
|
|
7769
|
+
offlineAssetTypeFieldValuesAttachments,
|
|
7770
|
+
promises.map((promise) => promise.then(({ attachments }) => attachments))
|
|
7771
|
+
];
|
|
7712
7772
|
}
|
|
7713
7773
|
async bulkDelete(ids) {
|
|
7714
7774
|
const { store } = this.client;
|
|
@@ -7731,7 +7791,7 @@ class AssetTypeFieldValuesAttachmentService extends BaseUploadService {
|
|
|
7731
7791
|
}
|
|
7732
7792
|
async refreshStore(projectId) {
|
|
7733
7793
|
const result = await this.enqueueRequest({
|
|
7734
|
-
description: "
|
|
7794
|
+
description: "Get asset type field values attachments",
|
|
7735
7795
|
method: HttpMethod.GET,
|
|
7736
7796
|
url: "/asset-type-field-values-attachments/",
|
|
7737
7797
|
queryParams: {
|
|
@@ -8002,7 +8062,13 @@ class IssueTypeFieldValuesService extends BaseApiService {
|
|
|
8002
8062
|
description: "Update issue type field values",
|
|
8003
8063
|
method: HttpMethod.PATCH,
|
|
8004
8064
|
url: `/issue-type-field-values/${payload.offline_id}/`,
|
|
8005
|
-
payload
|
|
8065
|
+
payload: {
|
|
8066
|
+
...payload,
|
|
8067
|
+
values: {
|
|
8068
|
+
...issueTypeFieldValues.values,
|
|
8069
|
+
...values
|
|
8070
|
+
}
|
|
8071
|
+
},
|
|
8006
8072
|
blockers: [
|
|
8007
8073
|
updatedIssueTypeFieldValues.offline_id,
|
|
8008
8074
|
updatedIssueTypeFieldValues.fields_revision,
|
|
@@ -8092,6 +8158,7 @@ export {
|
|
|
8092
8158
|
EmailVerificationService,
|
|
8093
8159
|
FileService,
|
|
8094
8160
|
FormRevisionAttachmentService,
|
|
8161
|
+
FormRevisionService,
|
|
8095
8162
|
FormService,
|
|
8096
8163
|
FormSubmissionAttachmentService,
|
|
8097
8164
|
FormSubmissionService,
|
|
@@ -8483,6 +8550,7 @@ export {
|
|
|
8483
8550
|
selectAssetTypeFieldsMapping,
|
|
8484
8551
|
selectAssetTypeFieldsOfAssetType,
|
|
8485
8552
|
selectAssetTypeStagesMapping,
|
|
8553
|
+
selectAssetTypeValuesOfAssetType,
|
|
8486
8554
|
selectAssetTypes,
|
|
8487
8555
|
selectAssetTypesByIds,
|
|
8488
8556
|
selectAssetTypesMapping,
|
|
@@ -8540,14 +8608,11 @@ export {
|
|
|
8540
8608
|
selectFormSubmissionAttachmentsMapping,
|
|
8541
8609
|
selectFormSubmissionById,
|
|
8542
8610
|
selectFormSubmissions,
|
|
8543
|
-
selectFormSubmissionsByFormRevisions,
|
|
8544
8611
|
selectFormSubmissionsMapping,
|
|
8545
8612
|
selectFormSubmissionsOfAsset,
|
|
8546
8613
|
selectFormSubmissionsOfForm,
|
|
8547
8614
|
selectFormSubmissionsOfIssue,
|
|
8548
8615
|
selectForms,
|
|
8549
|
-
selectFormsCount,
|
|
8550
|
-
selectGeneralFormCount,
|
|
8551
8616
|
selectGeoImageById,
|
|
8552
8617
|
selectGeoImageMapping,
|
|
8553
8618
|
selectGeoImages,
|
|
@@ -8584,6 +8649,7 @@ export {
|
|
|
8584
8649
|
selectIssueTypeFieldsMapping,
|
|
8585
8650
|
selectIssueTypeFieldsOfIssueType,
|
|
8586
8651
|
selectIssueTypeMapping,
|
|
8652
|
+
selectIssueTypeValuesOfIssueType,
|
|
8587
8653
|
selectIssueTypes,
|
|
8588
8654
|
selectIssueTypesByIds,
|
|
8589
8655
|
selectIssueTypesOfOrganization,
|
|
@@ -8592,8 +8658,9 @@ export {
|
|
|
8592
8658
|
selectIssuesByIds,
|
|
8593
8659
|
selectIssuesOfIssueType,
|
|
8594
8660
|
selectIssuesOfIssueTypeCount,
|
|
8595
|
-
|
|
8661
|
+
selectLatestAssetTypeFieldsOfAssetType,
|
|
8596
8662
|
selectLatestFormRevisionOfForm,
|
|
8663
|
+
selectLatestIssueTypeFieldsOfIssueType,
|
|
8597
8664
|
selectLatestRetryTime,
|
|
8598
8665
|
selectLicense,
|
|
8599
8666
|
selectLicenseForProject,
|
|
@@ -8630,7 +8697,6 @@ export {
|
|
|
8630
8697
|
selectProjectsOfOrganization,
|
|
8631
8698
|
selectRehydrated,
|
|
8632
8699
|
selectRootDocuments,
|
|
8633
|
-
selectSortedFormSubmissionsOfForm,
|
|
8634
8700
|
selectSortedOrganizationUsers,
|
|
8635
8701
|
selectSortedProjectUsers,
|
|
8636
8702
|
selectStageFormIdsFromStageIds,
|