@overmap-ai/core 1.0.71-fields.13 → 1.0.71-fields.2
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 +200 -218
- package/dist/overmap-core.js.map +1 -1
- package/dist/overmap-core.umd.cjs +200 -218
- package/dist/overmap-core.umd.cjs.map +1 -1
- package/dist/sdk/services/AssetTypeFieldValuesAttachmentService.d.ts +3 -2
- package/dist/sdk/services/AssetTypeFieldValuesService.d.ts +2 -2
- package/dist/sdk/services/FormService.d.ts +2 -2
- package/dist/store/slices/assetTypeFieldValuesAttachmentSlice.d.ts +1 -2
- package/dist/store/slices/assetTypeFieldValuesSlice.d.ts +0 -1
- package/dist/store/slices/formRevisionSlice.d.ts +2 -1
- package/dist/store/slices/formSlice.d.ts +3 -1
- package/dist/store/slices/formSubmissionSlice.d.ts +2 -0
- package/dist/store/slices/issueTypeFieldValuesAttachmentSlice.d.ts +1 -2
- package/dist/store/slices/issueTypeFieldsSlice.d.ts +2 -3
- package/package.json +1 -1
package/dist/overmap-core.js
CHANGED
|
@@ -2104,6 +2104,17 @@ 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
|
+
});
|
|
2107
2118
|
const formRevisionReducer = formRevisionsSlice.reducer;
|
|
2108
2119
|
const formAdapter = createModelAdapter((form) => form.offline_id);
|
|
2109
2120
|
const initialState$n = formAdapter.getInitialState({});
|
|
@@ -2128,9 +2139,6 @@ const selectFormMapping = (state) => {
|
|
|
2128
2139
|
const selectForms = createSelector([selectFormMapping], (formsMapping) => {
|
|
2129
2140
|
return Object.values(formsMapping);
|
|
2130
2141
|
});
|
|
2131
|
-
const selectFormById = (formId) => (state) => {
|
|
2132
|
-
return state.formReducer.instances[formId];
|
|
2133
|
-
};
|
|
2134
2142
|
const selectFilteredForms = restructureCreateSelectorWithArgs(
|
|
2135
2143
|
createSelector(
|
|
2136
2144
|
[
|
|
@@ -2156,6 +2164,15 @@ const selectFilteredForms = restructureCreateSelectorWithArgs(
|
|
|
2156
2164
|
{ memoizeOptions: { equalityCheck: shallowEqual } }
|
|
2157
2165
|
)
|
|
2158
2166
|
);
|
|
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
|
+
});
|
|
2159
2176
|
const submissionAdapter = createModelAdapter((submission) => submission.offline_id);
|
|
2160
2177
|
const initialState$m = submissionAdapter.getInitialState({});
|
|
2161
2178
|
const formSubmissionSlice = createSlice({
|
|
@@ -2217,6 +2234,43 @@ const selectFormSubmissionsOfForm = restructureCreateSelectorWithArgs(
|
|
|
2217
2234
|
}
|
|
2218
2235
|
)
|
|
2219
2236
|
);
|
|
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
|
+
);
|
|
2220
2274
|
const selectFormSubmissionsOfIssue = restructureCreateSelectorWithArgs(
|
|
2221
2275
|
createSelector(
|
|
2222
2276
|
[selectFormSubmissions, (_state, issueId) => issueId],
|
|
@@ -2984,56 +3038,12 @@ const selectIssueAssociationsOfAsset = restructureCreateSelectorWithArgs(
|
|
|
2984
3038
|
)
|
|
2985
3039
|
);
|
|
2986
3040
|
const issueAssociationReducer = issueAssociationSlice.reducer;
|
|
2987
|
-
const issueTypeFieldValuesAdapter = createModelAdapter(
|
|
2988
|
-
(fieldValues) => fieldValues.offline_id
|
|
2989
|
-
);
|
|
2990
|
-
const initialState$7 = issueTypeFieldValuesAdapter.getInitialState({});
|
|
2991
|
-
const issueTypeFieldValuesSlice = createSlice({
|
|
2992
|
-
name: "issueTypeFieldValues",
|
|
2993
|
-
initialState: initialState$7,
|
|
2994
|
-
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$7)),
|
|
2995
|
-
reducers: {
|
|
2996
|
-
initializeIssueTypeFieldValues: issueTypeFieldValuesAdapter.initialize,
|
|
2997
|
-
addIssueTypeFieldValues: issueTypeFieldValuesAdapter.addOne,
|
|
2998
|
-
addIssueTypeFieldValuesMany: issueTypeFieldValuesAdapter.addMany,
|
|
2999
|
-
setIssueTypeFieldValues: issueTypeFieldValuesAdapter.setOne,
|
|
3000
|
-
setIssueTypeFieldValuesMany: issueTypeFieldValuesAdapter.setMany,
|
|
3001
|
-
updateIssueTypeFieldValues: issueTypeFieldValuesAdapter.updateOne,
|
|
3002
|
-
updateIssueTypeFieldValuesMany: issueTypeFieldValuesAdapter.updateMany,
|
|
3003
|
-
deleteIssueTypeFieldValues: issueTypeFieldValuesAdapter.deleteOne,
|
|
3004
|
-
deleteIssueTypeFieldValuesMany: issueTypeFieldValuesAdapter.deleteMany
|
|
3005
|
-
}
|
|
3006
|
-
});
|
|
3007
|
-
const {
|
|
3008
|
-
initializeIssueTypeFieldValues,
|
|
3009
|
-
addIssueTypeFieldValues,
|
|
3010
|
-
addIssueTypeFieldValuesMany,
|
|
3011
|
-
setIssueTypeFieldValues,
|
|
3012
|
-
setIssueTypeFieldValuesMany,
|
|
3013
|
-
updateIssueTypeFieldValues,
|
|
3014
|
-
updateIssueTypeFieldValuesMany,
|
|
3015
|
-
deleteIssueTypeFieldValues,
|
|
3016
|
-
deleteIssueTypeFieldValuesMany
|
|
3017
|
-
} = issueTypeFieldValuesSlice.actions;
|
|
3018
|
-
const selectIssueTypeFieldValuesMapping = (state) => state.issueTypeFieldValuesReducer.instances;
|
|
3019
|
-
const selectIssueTypeFieldValues = createSelector([selectIssueTypeFieldValuesMapping], (fieldValuesMapping) => {
|
|
3020
|
-
return Object.values(fieldValuesMapping);
|
|
3021
|
-
});
|
|
3022
|
-
const selectIssueTypeFieldValuesOfIssue = restructureCreateSelectorWithArgs(
|
|
3023
|
-
createSelector([selectIssueTypeFieldValues, (_state, issueId) => issueId], (fieldValues, issueId) => {
|
|
3024
|
-
return fallbackToEmptyArray(fieldValues.filter((fieldValue) => fieldValue.issue === issueId));
|
|
3025
|
-
})
|
|
3026
|
-
);
|
|
3027
|
-
const selectIssueTypeFieldValuesById = (fieldValuesId) => (state) => {
|
|
3028
|
-
return state.issueTypeFieldValuesReducer.instances[fieldValuesId];
|
|
3029
|
-
};
|
|
3030
|
-
const issueTypeFieldValuesReducer = issueTypeFieldValuesSlice.reducer;
|
|
3031
3041
|
const issueTypeFieldsAdapter = createModelAdapter((fields) => fields.offline_id);
|
|
3032
|
-
const initialState$
|
|
3042
|
+
const initialState$7 = issueTypeFieldsAdapter.getInitialState({});
|
|
3033
3043
|
const issueTypeFieldsSlice = createSlice({
|
|
3034
3044
|
name: "issueTypeFields",
|
|
3035
|
-
initialState: initialState$
|
|
3036
|
-
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$
|
|
3045
|
+
initialState: initialState$7,
|
|
3046
|
+
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$7)),
|
|
3037
3047
|
reducers: {
|
|
3038
3048
|
initializeIssueTypeFields: issueTypeFieldsAdapter.initialize,
|
|
3039
3049
|
addIssueTypeFields: issueTypeFieldsAdapter.addOne,
|
|
@@ -3066,26 +3076,59 @@ const selectIssueTypeFieldsOfIssueType = restructureCreateSelectorWithArgs(
|
|
|
3066
3076
|
return fallbackToEmptyArray(fields.filter((field) => field.issue_type === issueTypeId));
|
|
3067
3077
|
})
|
|
3068
3078
|
);
|
|
3069
|
-
const
|
|
3079
|
+
const selectLatestIssueTypeFieldsOfAssetType = restructureCreateSelectorWithArgs(
|
|
3070
3080
|
createSelector([selectIssueTypeFields, (_state, id) => id], (fields, id) => {
|
|
3071
|
-
return fields.filter((field) => field.issue_type === id).sort((a, b) => a.submitted_at
|
|
3081
|
+
return fields.filter((field) => field.issue_type === id).sort((a, b) => a.submitted_at < b.submitted_at ? -1 : 1)[0];
|
|
3072
3082
|
})
|
|
3073
3083
|
);
|
|
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
3084
|
const selectIssueTypeFieldsById = (fieldsId) => (state) => {
|
|
3086
3085
|
return state.issueTypeFieldsReducer.instances[fieldsId];
|
|
3087
3086
|
};
|
|
3088
3087
|
const issueTypeFieldsReducer = issueTypeFieldsSlice.reducer;
|
|
3088
|
+
const issueTypeFieldValuesAdapter = createModelAdapter(
|
|
3089
|
+
(fieldValues) => fieldValues.offline_id
|
|
3090
|
+
);
|
|
3091
|
+
const initialState$6 = issueTypeFieldValuesAdapter.getInitialState({});
|
|
3092
|
+
const issueTypeFieldValuesSlice = createSlice({
|
|
3093
|
+
name: "issueTypeFieldValues",
|
|
3094
|
+
initialState: initialState$6,
|
|
3095
|
+
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$6)),
|
|
3096
|
+
reducers: {
|
|
3097
|
+
initializeIssueTypeFieldValues: issueTypeFieldValuesAdapter.initialize,
|
|
3098
|
+
addIssueTypeFieldValues: issueTypeFieldValuesAdapter.addOne,
|
|
3099
|
+
addIssueTypeFieldValuesMany: issueTypeFieldValuesAdapter.addMany,
|
|
3100
|
+
setIssueTypeFieldValues: issueTypeFieldValuesAdapter.setOne,
|
|
3101
|
+
setIssueTypeFieldValuesMany: issueTypeFieldValuesAdapter.setMany,
|
|
3102
|
+
updateIssueTypeFieldValues: issueTypeFieldValuesAdapter.updateOne,
|
|
3103
|
+
updateIssueTypeFieldValuesMany: issueTypeFieldValuesAdapter.updateMany,
|
|
3104
|
+
deleteIssueTypeFieldValues: issueTypeFieldValuesAdapter.deleteOne,
|
|
3105
|
+
deleteIssueTypeFieldValuesMany: issueTypeFieldValuesAdapter.deleteMany
|
|
3106
|
+
}
|
|
3107
|
+
});
|
|
3108
|
+
const {
|
|
3109
|
+
initializeIssueTypeFieldValues,
|
|
3110
|
+
addIssueTypeFieldValues,
|
|
3111
|
+
addIssueTypeFieldValuesMany,
|
|
3112
|
+
setIssueTypeFieldValues,
|
|
3113
|
+
setIssueTypeFieldValuesMany,
|
|
3114
|
+
updateIssueTypeFieldValues,
|
|
3115
|
+
updateIssueTypeFieldValuesMany,
|
|
3116
|
+
deleteIssueTypeFieldValues,
|
|
3117
|
+
deleteIssueTypeFieldValuesMany
|
|
3118
|
+
} = issueTypeFieldValuesSlice.actions;
|
|
3119
|
+
const selectIssueTypeFieldValuesMapping = (state) => state.issueTypeFieldValuesReducer.instances;
|
|
3120
|
+
const selectIssueTypeFieldValues = createSelector([selectIssueTypeFieldValuesMapping], (fieldValuesMapping) => {
|
|
3121
|
+
return Object.values(fieldValuesMapping);
|
|
3122
|
+
});
|
|
3123
|
+
const selectIssueTypeFieldValuesOfIssue = restructureCreateSelectorWithArgs(
|
|
3124
|
+
createSelector([selectIssueTypeFieldValues, (_state, issueId) => issueId], (fieldValues, issueId) => {
|
|
3125
|
+
return fallbackToEmptyArray(fieldValues.filter((fieldValue) => fieldValue.issue === issueId));
|
|
3126
|
+
})
|
|
3127
|
+
);
|
|
3128
|
+
const selectIssueTypeFieldValuesById = (fieldValuesId) => (state) => {
|
|
3129
|
+
return state.issueTypeFieldValuesReducer.instances[fieldValuesId];
|
|
3130
|
+
};
|
|
3131
|
+
const issueTypeFieldValuesReducer = issueTypeFieldValuesSlice.reducer;
|
|
3089
3132
|
const issueTypeFieldsAttachmentAdapter = createModelAdapter(
|
|
3090
3133
|
(attachment) => attachment.offline_id
|
|
3091
3134
|
);
|
|
@@ -3176,20 +3219,6 @@ const selectIssueTypeFieldValuesAttachments = createSelector(
|
|
|
3176
3219
|
return Object.values(attachmentsMapping);
|
|
3177
3220
|
}
|
|
3178
3221
|
);
|
|
3179
|
-
const selectIssueTypeFieldValuesAttachmentById = (attachmentId) => (state) => {
|
|
3180
|
-
return state.issueTypeFieldValuesAttachmentReducer.instances[attachmentId];
|
|
3181
|
-
};
|
|
3182
|
-
const selectIssueTypeFieldValuesAttachmentsByIds = restructureCreateSelectorWithArgs(
|
|
3183
|
-
createSelector(
|
|
3184
|
-
[selectIssueTypeFieldValuesAttachmentsMapping, (_, attachmentIds) => attachmentIds],
|
|
3185
|
-
(mapping, attachmentIds) => {
|
|
3186
|
-
const attachmentIdsSet = new Set(attachmentIds);
|
|
3187
|
-
return fallbackToEmptyArray(
|
|
3188
|
-
Object.values(mapping).filter((attachment) => attachmentIdsSet.has(attachment.offline_id))
|
|
3189
|
-
);
|
|
3190
|
-
}
|
|
3191
|
-
)
|
|
3192
|
-
);
|
|
3193
3222
|
const selectAttachmentsOfIssueTypeFieldValues = restructureCreateSelectorWithArgs(
|
|
3194
3223
|
createSelector(
|
|
3195
3224
|
[selectIssueTypeFieldValuesAttachments, (_state, fieldValuesId) => fieldValuesId],
|
|
@@ -3198,6 +3227,9 @@ const selectAttachmentsOfIssueTypeFieldValues = restructureCreateSelectorWithArg
|
|
|
3198
3227
|
}
|
|
3199
3228
|
)
|
|
3200
3229
|
);
|
|
3230
|
+
const selectIssueTypeFieldValuesAttachmentById = (attachmentId) => (state) => {
|
|
3231
|
+
return state.issueTypeFieldValuesAttachmentReducer.instances[attachmentId];
|
|
3232
|
+
};
|
|
3201
3233
|
const issueTypeFieldValuesAttachmentReducer = issueTypeFieldValuesAttachmentSlice.reducer;
|
|
3202
3234
|
const assetTypeFieldsAdapter = createModelAdapter((fields) => fields.offline_id);
|
|
3203
3235
|
const initialState$3 = assetTypeFieldsAdapter.getInitialState({});
|
|
@@ -3239,7 +3271,7 @@ const selectAssetTypeFieldsOfAssetType = restructureCreateSelectorWithArgs(
|
|
|
3239
3271
|
);
|
|
3240
3272
|
const selectLatestAssetTypeFieldsOfAssetType = restructureCreateSelectorWithArgs(
|
|
3241
3273
|
createSelector([selectAssetTypeFields, (_state, id) => id], (fields, id) => {
|
|
3242
|
-
return fields.filter((field) => field.asset_type === id).sort((a, b) => a.submitted_at
|
|
3274
|
+
return fields.filter((field) => field.asset_type === id).sort((a, b) => a.submitted_at < b.submitted_at ? -1 : 1)[0];
|
|
3243
3275
|
})
|
|
3244
3276
|
);
|
|
3245
3277
|
const selectAssetTypeFieldsById = (fieldsId) => (state) => {
|
|
@@ -3286,17 +3318,6 @@ const selectAssetTypeFieldValuesOfAsset = restructureCreateSelectorWithArgs(
|
|
|
3286
3318
|
return fallbackToEmptyArray(fieldValues.filter((fieldValue) => fieldValue.asset === assetId));
|
|
3287
3319
|
})
|
|
3288
3320
|
);
|
|
3289
|
-
const selectAssetTypeValuesOfAssetType = restructureCreateSelectorWithArgs(
|
|
3290
|
-
createSelector(
|
|
3291
|
-
[selectAssetTypeFields, selectAssetTypeFieldValues, (_state, id) => id],
|
|
3292
|
-
(fields, fieldValues, id) => {
|
|
3293
|
-
const fieldsIds = new Set(
|
|
3294
|
-
fields.filter((field) => field.asset_type === id).map((field) => field.offline_id)
|
|
3295
|
-
);
|
|
3296
|
-
return fallbackToEmptyArray(fieldValues.filter((values) => fieldsIds.has(values.fields_revision)));
|
|
3297
|
-
}
|
|
3298
|
-
)
|
|
3299
|
-
);
|
|
3300
3321
|
const selectAssetTypeFieldValuesById = (fieldValuesId) => (state) => {
|
|
3301
3322
|
return state.assetTypeFieldValuesReducer.instances[fieldValuesId];
|
|
3302
3323
|
};
|
|
@@ -3386,25 +3407,14 @@ const selectAssetTypeFieldValuesAttachments = createSelector(
|
|
|
3386
3407
|
return Object.values(attachmentsMapping);
|
|
3387
3408
|
}
|
|
3388
3409
|
);
|
|
3389
|
-
const selectAssetTypeFieldValuesAttachmentById = (attachmentId) => (state) => {
|
|
3390
|
-
return state.assetTypeFieldValuesAttachmentReducer.instances[attachmentId];
|
|
3391
|
-
};
|
|
3392
|
-
const selectAssetTypeFieldValuesAttachmentsByIds = restructureCreateSelectorWithArgs(
|
|
3393
|
-
createSelector(
|
|
3394
|
-
[selectAssetTypeFieldValuesAttachmentsMapping, (_, attachmentIds) => attachmentIds],
|
|
3395
|
-
(mapping, attachmentIds) => {
|
|
3396
|
-
const attachmentIdsSet = new Set(attachmentIds);
|
|
3397
|
-
return fallbackToEmptyArray(
|
|
3398
|
-
Object.values(mapping).filter((attachment) => attachmentIdsSet.has(attachment.offline_id))
|
|
3399
|
-
);
|
|
3400
|
-
}
|
|
3401
|
-
)
|
|
3402
|
-
);
|
|
3403
3410
|
const selectAttachmentsOfAssetTypeFieldValues = restructureCreateSelectorWithArgs(
|
|
3404
3411
|
createSelector([selectAssetTypeFieldValuesAttachments, (_state, id) => id], (attachments, id) => {
|
|
3405
3412
|
return fallbackToEmptyArray(attachments.filter((attachment) => attachment.field_values === id));
|
|
3406
3413
|
})
|
|
3407
3414
|
);
|
|
3415
|
+
const selectAssetTypeFieldValuesAttachmentById = (attachmentId) => (state) => {
|
|
3416
|
+
return state.assetTypeFieldValuesAttachmentReducer.instances[attachmentId];
|
|
3417
|
+
};
|
|
3408
3418
|
const assetTypeFieldValuesAttachmentReducer = assetTypeFieldValuesAttachmentSlice.reducer;
|
|
3409
3419
|
let clientStore;
|
|
3410
3420
|
function setClientStore(store) {
|
|
@@ -5299,7 +5309,15 @@ class IssueTypeService extends BaseApiService {
|
|
|
5299
5309
|
const promise = this.enqueueRequest({
|
|
5300
5310
|
method: HttpMethod.POST,
|
|
5301
5311
|
url: "/issue-types/",
|
|
5302
|
-
|
|
5312
|
+
// Sending only whats needed here
|
|
5313
|
+
payload: {
|
|
5314
|
+
offline_id: offlineIssueType.offline_id,
|
|
5315
|
+
submitted_at: offlineIssueType.submitted_at,
|
|
5316
|
+
icon: offlineIssueType.icon,
|
|
5317
|
+
color: offlineIssueType.color,
|
|
5318
|
+
name: offlineIssueType.name,
|
|
5319
|
+
description: offlineIssueType.description
|
|
5320
|
+
},
|
|
5303
5321
|
blockers: [],
|
|
5304
5322
|
blocks: [offlineIssueType.offline_id]
|
|
5305
5323
|
});
|
|
@@ -5719,7 +5737,9 @@ class FormService extends BaseUploadService {
|
|
|
5719
5737
|
method: HttpMethod.POST,
|
|
5720
5738
|
url: "/forms/",
|
|
5721
5739
|
payload: {
|
|
5722
|
-
|
|
5740
|
+
// Sending exactly what is currently needed for the endpoint
|
|
5741
|
+
offline_id: offlineForm.offline_id,
|
|
5742
|
+
submitted_at: offlineForm.submitted_at,
|
|
5723
5743
|
initial_revision: {
|
|
5724
5744
|
offline_id: offlineFormRevision.offline_id,
|
|
5725
5745
|
submitted_at: offlineFormRevision.submitted_at,
|
|
@@ -5728,7 +5748,10 @@ class FormService extends BaseUploadService {
|
|
|
5728
5748
|
fields: offlineFormRevision.fields
|
|
5729
5749
|
}
|
|
5730
5750
|
},
|
|
5731
|
-
blockers: [
|
|
5751
|
+
blockers: [
|
|
5752
|
+
...payload.project ? [payload.project.toString()] : [],
|
|
5753
|
+
...payload.organization ? [payload.organization.toString()] : []
|
|
5754
|
+
],
|
|
5732
5755
|
blocks: [offlineForm.offline_id, offlineFormRevision.offline_id]
|
|
5733
5756
|
});
|
|
5734
5757
|
void formPromise.catch((e) => {
|
|
@@ -6682,8 +6705,7 @@ class DocumentAttachmentService extends BaseAttachmentService {
|
|
|
6682
6705
|
file_name: offlineAttachment.file_name,
|
|
6683
6706
|
file_sha1: offlineAttachment.file_sha1,
|
|
6684
6707
|
file_extension: filePayload.extension,
|
|
6685
|
-
description: offlineAttachment.description
|
|
6686
|
-
document: documentId
|
|
6708
|
+
description: offlineAttachment.description
|
|
6687
6709
|
});
|
|
6688
6710
|
sha1ToAttachmentIds[filePayload.sha1].push(offlineAttachment.offline_id);
|
|
6689
6711
|
}
|
|
@@ -7582,39 +7604,24 @@ class AssetTypeFieldValuesService extends BaseApiService {
|
|
|
7582
7604
|
return [offlineAssetTypeFieldValues, promise];
|
|
7583
7605
|
}
|
|
7584
7606
|
bulkAdd(payload, batchSize) {
|
|
7585
|
-
var _a2;
|
|
7586
7607
|
const submittedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
7587
7608
|
const { values } = separateFilesFromValues(payload.values);
|
|
7588
|
-
const
|
|
7589
|
-
const
|
|
7590
|
-
|
|
7591
|
-
for (const batch of batches) {
|
|
7592
|
-
const assetTypeFieldValuesPayloads = [];
|
|
7593
|
-
for (const payload2 of batch) {
|
|
7594
|
-
const offlineAssetTypeFieldValues = offline({
|
|
7595
|
-
...payload2,
|
|
7596
|
-
values: separateFilesFromValues(payload2.values).values,
|
|
7597
|
-
created_by: (_a2 = this.client.store.getState().userReducer.currentUser) == null ? void 0 : _a2.id,
|
|
7598
|
-
submitted_at: submittedAt
|
|
7599
|
-
});
|
|
7600
|
-
offlineAssetTypeFieldValuesMany.push(offlineAssetTypeFieldValues);
|
|
7601
|
-
assetTypeFieldValuesPayloads.push({
|
|
7602
|
-
offline_id: offlineAssetTypeFieldValues.offline_id,
|
|
7603
|
-
asset: payload2.asset,
|
|
7604
|
-
fields_revision: payload2.fields_revision,
|
|
7605
|
-
published_at: payload2.published_at,
|
|
7606
|
-
values: offlineAssetTypeFieldValues.values
|
|
7607
|
-
});
|
|
7608
|
-
}
|
|
7609
|
-
batchPayloads.push({
|
|
7609
|
+
const payloadsBatches = chunkArray(payload.payloads, batchSize);
|
|
7610
|
+
const bulkAddPayloads = payloadsBatches.map((batch) => {
|
|
7611
|
+
return {
|
|
7610
7612
|
submitted_at: submittedAt,
|
|
7611
7613
|
values,
|
|
7612
|
-
field_values:
|
|
7613
|
-
|
|
7614
|
-
|
|
7615
|
-
|
|
7614
|
+
field_values: batch.map((payload2) => {
|
|
7615
|
+
const { values: values2 } = separateFilesFromValues(payload2.values);
|
|
7616
|
+
return offline({
|
|
7617
|
+
...payload2,
|
|
7618
|
+
values: values2
|
|
7619
|
+
});
|
|
7620
|
+
})
|
|
7621
|
+
};
|
|
7622
|
+
});
|
|
7616
7623
|
const promises = [];
|
|
7617
|
-
for (const payload2 of
|
|
7624
|
+
for (const payload2 of bulkAddPayloads) {
|
|
7618
7625
|
const assetIds = payload2.field_values.map((x) => x.asset);
|
|
7619
7626
|
const assetTypeFieldsIds = payload2.field_values.map((x) => x.fields_revision);
|
|
7620
7627
|
const assetTypeFieldValuesIds = payload2.field_values.map((x) => x.offline_id);
|
|
@@ -7629,11 +7636,9 @@ class AssetTypeFieldValuesService extends BaseApiService {
|
|
|
7629
7636
|
promises.push(promise);
|
|
7630
7637
|
}
|
|
7631
7638
|
void Promise.all(promises).then((results) => {
|
|
7632
|
-
this.dispatch(
|
|
7633
|
-
}).catch(() => {
|
|
7634
|
-
this.dispatch(deleteAssetTypeFieldValuesMany(offlineAssetTypeFieldValuesMany.map((x) => x.offline_id)));
|
|
7639
|
+
this.dispatch(addAssetTypeFieldValuesMany(results.flat()));
|
|
7635
7640
|
});
|
|
7636
|
-
return
|
|
7641
|
+
return promises;
|
|
7637
7642
|
}
|
|
7638
7643
|
update(payload) {
|
|
7639
7644
|
const { store } = this.client;
|
|
@@ -7657,13 +7662,7 @@ class AssetTypeFieldValuesService extends BaseApiService {
|
|
|
7657
7662
|
description: "Delete asset type field values",
|
|
7658
7663
|
method: HttpMethod.PATCH,
|
|
7659
7664
|
url: `/asset-type-field-values/${payload.offline_id}/`,
|
|
7660
|
-
payload
|
|
7661
|
-
...payload,
|
|
7662
|
-
values: {
|
|
7663
|
-
...assetTypeFieldValues.values,
|
|
7664
|
-
...values
|
|
7665
|
-
}
|
|
7666
|
-
},
|
|
7665
|
+
payload,
|
|
7667
7666
|
blockers: [
|
|
7668
7667
|
updatedAssetTypeFieldValues.offline_id,
|
|
7669
7668
|
updatedAssetTypeFieldValues.fields_revision,
|
|
@@ -7717,63 +7716,54 @@ class AssetTypeFieldValuesService extends BaseApiService {
|
|
|
7717
7716
|
}
|
|
7718
7717
|
}
|
|
7719
7718
|
class AssetTypeFieldValuesAttachmentService extends BaseUploadService {
|
|
7720
|
-
async bulkAdd(payloads
|
|
7719
|
+
async bulkAdd(payloads) {
|
|
7721
7720
|
var _a2;
|
|
7722
7721
|
const submittedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
7723
7722
|
const createdBy = (_a2 = this.client.store.getState().userReducer.currentUser) == null ? void 0 : _a2.id;
|
|
7724
|
-
const
|
|
7723
|
+
const filePayloads = {};
|
|
7725
7724
|
const offlineAssetTypeFieldValuesAttachments = [];
|
|
7726
|
-
const
|
|
7727
|
-
for (const
|
|
7728
|
-
const
|
|
7729
|
-
const
|
|
7730
|
-
|
|
7731
|
-
|
|
7732
|
-
|
|
7733
|
-
|
|
7734
|
-
|
|
7735
|
-
|
|
7736
|
-
|
|
7737
|
-
|
|
7738
|
-
|
|
7739
|
-
file_sha1: filePayload.sha1,
|
|
7740
|
-
created_by: createdBy,
|
|
7741
|
-
field_values: fieldValuesId,
|
|
7742
|
-
submitted_at: submittedAt,
|
|
7743
|
-
field_identifier: fieldIdentifier
|
|
7744
|
-
});
|
|
7745
|
-
offlineAssetTypeFieldValuesAttachments.push(offlineAssetTypeFieldValuesAttachment);
|
|
7746
|
-
const attachmentPayload = {
|
|
7747
|
-
offline_id: offlineAssetTypeFieldValuesAttachment.offline_id,
|
|
7748
|
-
file_name: file.name,
|
|
7749
|
-
file_sha1: filePayload.sha1,
|
|
7750
|
-
file_extension: filePayload.extension,
|
|
7751
|
-
field_identifier: fieldIdentifier,
|
|
7752
|
-
field_values: fieldValuesId
|
|
7753
|
-
};
|
|
7754
|
-
attachmentPayloads.push(attachmentPayload);
|
|
7755
|
-
}
|
|
7756
|
-
batchPayloads.push({
|
|
7725
|
+
const attachmentPayloads = [];
|
|
7726
|
+
for (const payload of payloads) {
|
|
7727
|
+
const { fieldValuesId, fieldIdentifier, file } = payload;
|
|
7728
|
+
const filePayload = await this.getFilePayload(file);
|
|
7729
|
+
if (!(filePayload.sha1 in filePayloads))
|
|
7730
|
+
filePayloads[filePayload.sha1] = filePayload;
|
|
7731
|
+
const offlineAssetTypeFieldValuesAttachment = offline({
|
|
7732
|
+
file: URL.createObjectURL(file),
|
|
7733
|
+
file_type: file.type,
|
|
7734
|
+
file_name: file.name,
|
|
7735
|
+
file_sha1: filePayload.sha1,
|
|
7736
|
+
created_by: createdBy,
|
|
7737
|
+
field_values: fieldValuesId,
|
|
7757
7738
|
submitted_at: submittedAt,
|
|
7758
|
-
|
|
7759
|
-
files: Object.values(filePayloads)
|
|
7739
|
+
field_identifier: fieldIdentifier
|
|
7760
7740
|
});
|
|
7741
|
+
offlineAssetTypeFieldValuesAttachments.push(offlineAssetTypeFieldValuesAttachment);
|
|
7742
|
+
const attachmentPayload = {
|
|
7743
|
+
offline_id: offlineAssetTypeFieldValuesAttachment.offline_id,
|
|
7744
|
+
file_name: file.name,
|
|
7745
|
+
file_sha1: filePayload.sha1,
|
|
7746
|
+
file_extension: filePayload.extension,
|
|
7747
|
+
field_identifier: fieldIdentifier,
|
|
7748
|
+
field_values: fieldValuesId
|
|
7749
|
+
};
|
|
7750
|
+
attachmentPayloads.push(attachmentPayload);
|
|
7761
7751
|
}
|
|
7762
7752
|
this.dispatch(addAssetTypeFieldValuesAttachments(offlineAssetTypeFieldValuesAttachments));
|
|
7763
|
-
const
|
|
7764
|
-
|
|
7765
|
-
|
|
7766
|
-
|
|
7767
|
-
|
|
7768
|
-
|
|
7769
|
-
|
|
7770
|
-
|
|
7771
|
-
}
|
|
7753
|
+
const promise = this.enqueueRequest({
|
|
7754
|
+
description: "Add asset type field values attachments",
|
|
7755
|
+
method: HttpMethod.POST,
|
|
7756
|
+
url: "/asset-type-field-values-attachments/bulk/",
|
|
7757
|
+
payload: {
|
|
7758
|
+
submitted_at: submittedAt,
|
|
7759
|
+
attachments: attachmentPayloads,
|
|
7760
|
+
files: Object.values(filePayloads)
|
|
7761
|
+
},
|
|
7762
|
+
blockers: offlineAssetTypeFieldValuesAttachments.map((attachment) => attachment.field_values),
|
|
7763
|
+
blocks: offlineAssetTypeFieldValuesAttachments.map((attachment) => attachment.offline_id)
|
|
7772
7764
|
});
|
|
7773
|
-
|
|
7774
|
-
|
|
7775
|
-
this.processPresignedUrls(res.presigned_urls);
|
|
7776
|
-
const attachments = result.flatMap((res) => res.attachments);
|
|
7765
|
+
promise.then(({ presigned_urls, attachments }) => {
|
|
7766
|
+
this.processPresignedUrls(presigned_urls);
|
|
7777
7767
|
this.dispatch(updateAssetTypeFieldValuesAttachments(attachments));
|
|
7778
7768
|
}).catch((error) => {
|
|
7779
7769
|
this.dispatch(
|
|
@@ -7783,16 +7773,13 @@ class AssetTypeFieldValuesAttachmentService extends BaseUploadService {
|
|
|
7783
7773
|
);
|
|
7784
7774
|
throw error;
|
|
7785
7775
|
});
|
|
7786
|
-
return [
|
|
7787
|
-
offlineAssetTypeFieldValuesAttachments,
|
|
7788
|
-
promises.map((promise) => promise.then(({ attachments }) => attachments))
|
|
7789
|
-
];
|
|
7776
|
+
return [offlineAssetTypeFieldValuesAttachments, promise.then(({ attachments }) => attachments)];
|
|
7790
7777
|
}
|
|
7791
7778
|
async bulkDelete(ids) {
|
|
7792
7779
|
const { store } = this.client;
|
|
7793
7780
|
const state = store.getState();
|
|
7794
|
-
const
|
|
7795
|
-
this.dispatch(
|
|
7781
|
+
const formSubmissionAttachments = selectFormSubmissionAttachemntsByIds(ids)(state);
|
|
7782
|
+
this.dispatch(deleteFormSubmissionAttachments(ids));
|
|
7796
7783
|
try {
|
|
7797
7784
|
await this.enqueueRequest({
|
|
7798
7785
|
description: "Delete asset type field values attachments",
|
|
@@ -7803,13 +7790,13 @@ class AssetTypeFieldValuesAttachmentService extends BaseUploadService {
|
|
|
7803
7790
|
blocks: []
|
|
7804
7791
|
});
|
|
7805
7792
|
} catch (e) {
|
|
7806
|
-
this.dispatch(
|
|
7793
|
+
this.dispatch(addFormSubmissionAttachments(formSubmissionAttachments));
|
|
7807
7794
|
throw e;
|
|
7808
7795
|
}
|
|
7809
7796
|
}
|
|
7810
7797
|
async refreshStore(projectId) {
|
|
7811
7798
|
const result = await this.enqueueRequest({
|
|
7812
|
-
description: "
|
|
7799
|
+
description: "Gfet asset type field values attachments",
|
|
7813
7800
|
method: HttpMethod.GET,
|
|
7814
7801
|
url: "/asset-type-field-values-attachments/",
|
|
7815
7802
|
queryParams: {
|
|
@@ -7999,8 +7986,8 @@ class IssueTypeFieldValuesAttachmentService extends BaseUploadService {
|
|
|
7999
7986
|
async bulkDelete(attachmentsIds) {
|
|
8000
7987
|
const { store } = this.client;
|
|
8001
7988
|
const state = store.getState();
|
|
8002
|
-
const
|
|
8003
|
-
this.dispatch(
|
|
7989
|
+
const formSubmissionAttachments = selectFormSubmissionAttachemntsByIds(attachmentsIds)(state);
|
|
7990
|
+
this.dispatch(deleteFormSubmissionAttachments(attachmentsIds));
|
|
8004
7991
|
try {
|
|
8005
7992
|
await this.enqueueRequest({
|
|
8006
7993
|
description: "Delete issue type field values attachments",
|
|
@@ -8011,7 +7998,7 @@ class IssueTypeFieldValuesAttachmentService extends BaseUploadService {
|
|
|
8011
7998
|
blocks: []
|
|
8012
7999
|
});
|
|
8013
8000
|
} catch (e) {
|
|
8014
|
-
this.dispatch(
|
|
8001
|
+
this.dispatch(addFormSubmissionAttachments(formSubmissionAttachments));
|
|
8015
8002
|
throw e;
|
|
8016
8003
|
}
|
|
8017
8004
|
}
|
|
@@ -8080,13 +8067,7 @@ class IssueTypeFieldValuesService extends BaseApiService {
|
|
|
8080
8067
|
description: "Update issue type field values",
|
|
8081
8068
|
method: HttpMethod.PATCH,
|
|
8082
8069
|
url: `/issue-type-field-values/${payload.offline_id}/`,
|
|
8083
|
-
payload
|
|
8084
|
-
...payload,
|
|
8085
|
-
values: {
|
|
8086
|
-
...issueTypeFieldValues.values,
|
|
8087
|
-
...values
|
|
8088
|
-
}
|
|
8089
|
-
},
|
|
8070
|
+
payload,
|
|
8090
8071
|
blockers: [
|
|
8091
8072
|
updatedIssueTypeFieldValues.offline_id,
|
|
8092
8073
|
updatedIssueTypeFieldValues.fields_revision,
|
|
@@ -8556,7 +8537,6 @@ export {
|
|
|
8556
8537
|
selectAssetTypeFieldValues,
|
|
8557
8538
|
selectAssetTypeFieldValuesAttachmentById,
|
|
8558
8539
|
selectAssetTypeFieldValuesAttachments,
|
|
8559
|
-
selectAssetTypeFieldValuesAttachmentsByIds,
|
|
8560
8540
|
selectAssetTypeFieldValuesAttachmentsMapping,
|
|
8561
8541
|
selectAssetTypeFieldValuesById,
|
|
8562
8542
|
selectAssetTypeFieldValuesMapping,
|
|
@@ -8569,7 +8549,6 @@ export {
|
|
|
8569
8549
|
selectAssetTypeFieldsMapping,
|
|
8570
8550
|
selectAssetTypeFieldsOfAssetType,
|
|
8571
8551
|
selectAssetTypeStagesMapping,
|
|
8572
|
-
selectAssetTypeValuesOfAssetType,
|
|
8573
8552
|
selectAssetTypes,
|
|
8574
8553
|
selectAssetTypesByIds,
|
|
8575
8554
|
selectAssetTypesMapping,
|
|
@@ -8627,11 +8606,14 @@ export {
|
|
|
8627
8606
|
selectFormSubmissionAttachmentsMapping,
|
|
8628
8607
|
selectFormSubmissionById,
|
|
8629
8608
|
selectFormSubmissions,
|
|
8609
|
+
selectFormSubmissionsByFormRevisions,
|
|
8630
8610
|
selectFormSubmissionsMapping,
|
|
8631
8611
|
selectFormSubmissionsOfAsset,
|
|
8632
8612
|
selectFormSubmissionsOfForm,
|
|
8633
8613
|
selectFormSubmissionsOfIssue,
|
|
8634
8614
|
selectForms,
|
|
8615
|
+
selectFormsCount,
|
|
8616
|
+
selectGeneralFormCount,
|
|
8635
8617
|
selectGeoImageById,
|
|
8636
8618
|
selectGeoImageMapping,
|
|
8637
8619
|
selectGeoImages,
|
|
@@ -8656,7 +8638,6 @@ export {
|
|
|
8656
8638
|
selectIssueTypeFieldValues,
|
|
8657
8639
|
selectIssueTypeFieldValuesAttachmentById,
|
|
8658
8640
|
selectIssueTypeFieldValuesAttachments,
|
|
8659
|
-
selectIssueTypeFieldValuesAttachmentsByIds,
|
|
8660
8641
|
selectIssueTypeFieldValuesAttachmentsMapping,
|
|
8661
8642
|
selectIssueTypeFieldValuesById,
|
|
8662
8643
|
selectIssueTypeFieldValuesMapping,
|
|
@@ -8669,7 +8650,6 @@ export {
|
|
|
8669
8650
|
selectIssueTypeFieldsMapping,
|
|
8670
8651
|
selectIssueTypeFieldsOfIssueType,
|
|
8671
8652
|
selectIssueTypeMapping,
|
|
8672
|
-
selectIssueTypeValuesOfIssueType,
|
|
8673
8653
|
selectIssueTypes,
|
|
8674
8654
|
selectIssueTypesByIds,
|
|
8675
8655
|
selectIssueTypesOfOrganization,
|
|
@@ -8679,8 +8659,9 @@ export {
|
|
|
8679
8659
|
selectIssuesOfIssueType,
|
|
8680
8660
|
selectIssuesOfIssueTypeCount,
|
|
8681
8661
|
selectLatestAssetTypeFieldsOfAssetType,
|
|
8662
|
+
selectLatestFormRevisionByForm,
|
|
8682
8663
|
selectLatestFormRevisionOfForm,
|
|
8683
|
-
|
|
8664
|
+
selectLatestIssueTypeFieldsOfAssetType,
|
|
8684
8665
|
selectLatestRetryTime,
|
|
8685
8666
|
selectLicense,
|
|
8686
8667
|
selectLicenseForProject,
|
|
@@ -8717,6 +8698,7 @@ export {
|
|
|
8717
8698
|
selectProjectsOfOrganization,
|
|
8718
8699
|
selectRehydrated,
|
|
8719
8700
|
selectRootDocuments,
|
|
8701
|
+
selectSortedFormSubmissionsOfForm,
|
|
8720
8702
|
selectSortedOrganizationUsers,
|
|
8721
8703
|
selectSortedProjectUsers,
|
|
8722
8704
|
selectStageFormIdsFromStageIds,
|