@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.
@@ -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$6 = issueTypeFieldValuesAdapter.getInitialState({});
2990
+ const initialState$7 = issueTypeFieldValuesAdapter.getInitialState({});
3087
2991
  const issueTypeFieldValuesSlice = createSlice({
3088
2992
  name: "issueTypeFieldValues",
3089
- initialState: initialState$6,
3090
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$6)),
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
- // Sending only whats needed here
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
- // Sending exactly what is currently needed for the endpoint
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 payloadsBatches = chunkArray(payload.payloads, batchSize);
7600
- const bulkAddPayloads = payloadsBatches.map((batch) => {
7601
- return {
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: batch.map((payload2) => {
7605
- const { values: values2 } = separateFilesFromValues(payload2.values);
7606
- return offline({
7607
- ...payload2,
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 bulkAddPayloads) {
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(addAssetTypeFieldValuesMany(results.flat()));
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 filePayloads = {};
7701
+ const batches = chunkArray(payloads, batchSize ?? payloads.length);
7714
7702
  const offlineAssetTypeFieldValuesAttachments = [];
7715
- const attachmentPayloads = [];
7716
- for (const payload of payloads) {
7717
- const { fieldValuesId, fieldIdentifier, file } = payload;
7718
- const filePayload = await this.getFilePayload(file);
7719
- if (!(filePayload.sha1 in filePayloads))
7720
- filePayloads[filePayload.sha1] = filePayload;
7721
- const offlineAssetTypeFieldValuesAttachment = offline({
7722
- file: URL.createObjectURL(file),
7723
- file_type: file.type,
7724
- file_name: file.name,
7725
- file_sha1: filePayload.sha1,
7726
- created_by: createdBy,
7727
- field_values: fieldValuesId,
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
- field_identifier: fieldIdentifier
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 promise = this.enqueueRequest({
7744
- description: "Add asset type field values attachments",
7745
- method: HttpMethod.POST,
7746
- url: "/asset-type-field-values-attachments/bulk/",
7747
- payload: {
7748
- submitted_at: submittedAt,
7749
- attachments: attachmentPayloads,
7750
- files: Object.values(filePayloads)
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
- promise.then(({ presigned_urls, attachments }) => {
7756
- this.processPresignedUrls(presigned_urls);
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 [offlineAssetTypeFieldValuesAttachments, promise.then(({ attachments }) => attachments)];
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: "Gfet asset type field values attachments",
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
- selectLatestFormRevisionByForm,
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,