@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.
@@ -2093,17 +2093,6 @@ var __publicField = (obj, key, value) => {
2093
2093
  }
2094
2094
  )
2095
2095
  );
2096
- const selectLatestFormRevisionByForm = toolkit.createSelector([selectFormRevisionMapping], (revisions) => {
2097
- const latestRevisions = {};
2098
- for (const revision of Object.values(revisions)) {
2099
- const formId = revision.form;
2100
- const currentLatestRevision = latestRevisions[formId];
2101
- if (!currentLatestRevision || currentLatestRevision.revision < revision.revision) {
2102
- latestRevisions[formId] = revision;
2103
- }
2104
- }
2105
- return latestRevisions;
2106
- });
2107
2096
  const formRevisionReducer = formRevisionsSlice.reducer;
2108
2097
  const formAdapter = createModelAdapter((form) => form.offline_id);
2109
2098
  const initialState$n = formAdapter.getInitialState({});
@@ -2128,6 +2117,9 @@ var __publicField = (obj, key, value) => {
2128
2117
  const selectForms = toolkit.createSelector([selectFormMapping], (formsMapping) => {
2129
2118
  return Object.values(formsMapping);
2130
2119
  });
2120
+ const selectFormById = (formId) => (state) => {
2121
+ return state.formReducer.instances[formId];
2122
+ };
2131
2123
  const selectFilteredForms = restructureCreateSelectorWithArgs(
2132
2124
  toolkit.createSelector(
2133
2125
  [
@@ -2153,15 +2145,6 @@ var __publicField = (obj, key, value) => {
2153
2145
  { memoizeOptions: { equalityCheck: shallowEqual } }
2154
2146
  )
2155
2147
  );
2156
- const selectFormById = (formId) => (state) => {
2157
- return state.formReducer.instances[formId];
2158
- };
2159
- const selectFormsCount = toolkit.createSelector([selectFormMapping], (formsMapping) => {
2160
- return Object.keys(formsMapping).length;
2161
- });
2162
- const selectGeneralFormCount = toolkit.createSelector([selectFormMapping], (formsMapping) => {
2163
- return Object.values(formsMapping).length;
2164
- });
2165
2148
  const submissionAdapter = createModelAdapter((submission) => submission.offline_id);
2166
2149
  const initialState$m = submissionAdapter.getInitialState({});
2167
2150
  const formSubmissionSlice = toolkit.createSlice({
@@ -2223,43 +2206,6 @@ var __publicField = (obj, key, value) => {
2223
2206
  }
2224
2207
  )
2225
2208
  );
2226
- const selectFormSubmissionsByFormRevisions = toolkit.createSelector([selectFormRevisionMapping, selectFormSubmissions], (revisions, submissions) => {
2227
- var _a2;
2228
- const submissionMapping = {};
2229
- for (const revisionId in revisions) {
2230
- submissionMapping[revisionId] = [];
2231
- }
2232
- for (const submission of submissions) {
2233
- (_a2 = submissionMapping[submission.form_revision]) == null ? void 0 : _a2.push(submission);
2234
- }
2235
- return submissionMapping;
2236
- });
2237
- const selectSortedFormSubmissionsOfForm = restructureCreateSelectorWithArgs(
2238
- toolkit.createSelector(
2239
- [
2240
- selectFormRevisionMapping,
2241
- selectFormSubmissionsByFormRevisions,
2242
- (_state, formId) => formId
2243
- ],
2244
- (revisionsMapping, submissionsByRevision, formId) => {
2245
- const submissionsByFormRevisions = {};
2246
- for (const revisionId in revisionsMapping) {
2247
- const revision = revisionsMapping[revisionId];
2248
- const submissionsOfRevision = submissionsByRevision[revisionId];
2249
- if (revision && submissionsOfRevision && revision.form === formId) {
2250
- submissionsByFormRevisions[revisionId] = submissionsOfRevision.sort(
2251
- (a, b) => a.submitted_at < b.submitted_at ? -1 : 1
2252
- );
2253
- }
2254
- }
2255
- return Object.entries(submissionsByFormRevisions).sort((a, b) => {
2256
- const aRevision = revisionsMapping[a[0]];
2257
- const bRevision = revisionsMapping[b[0]];
2258
- return formRevisionSortFn(aRevision, bRevision);
2259
- }).map(([_revisionId, submissions]) => submissions).flat();
2260
- }
2261
- )
2262
- );
2263
2209
  const selectFormSubmissionsOfIssue = restructureCreateSelectorWithArgs(
2264
2210
  toolkit.createSelector(
2265
2211
  [selectFormSubmissions, (_state, issueId) => issueId],
@@ -3027,56 +2973,14 @@ var __publicField = (obj, key, value) => {
3027
2973
  )
3028
2974
  );
3029
2975
  const issueAssociationReducer = issueAssociationSlice.reducer;
3030
- const issueTypeFieldsAdapter = createModelAdapter((fields) => fields.offline_id);
3031
- const initialState$7 = issueTypeFieldsAdapter.getInitialState({});
3032
- const issueTypeFieldsSlice = toolkit.createSlice({
3033
- name: "issueTypeFields",
3034
- initialState: initialState$7,
3035
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$7)),
3036
- reducers: {
3037
- initializeIssueTypeFields: issueTypeFieldsAdapter.initialize,
3038
- addIssueTypeFields: issueTypeFieldsAdapter.addOne,
3039
- addIssueTypeFieldsMany: issueTypeFieldsAdapter.addMany,
3040
- setIssueTypeFields: issueTypeFieldsAdapter.setOne,
3041
- setIssueTypeFieldsMany: issueTypeFieldsAdapter.setMany,
3042
- updateIssueTypeFields: issueTypeFieldsAdapter.updateOne,
3043
- updateIssueTypeFieldsMany: issueTypeFieldsAdapter.updateMany,
3044
- deleteIssueTypeFields: issueTypeFieldsAdapter.deleteOne,
3045
- deleteIssueTypeFieldsMany: issueTypeFieldsAdapter.deleteMany
3046
- }
3047
- });
3048
- const {
3049
- initializeIssueTypeFields,
3050
- addIssueTypeFields,
3051
- addIssueTypeFieldsMany,
3052
- setIssueTypeFields,
3053
- setIssueTypeFieldsMany,
3054
- updateIssueTypeFields,
3055
- updateIssueTypeFieldsMany,
3056
- deleteIssueTypeFields,
3057
- deleteIssueTypeFieldsMany
3058
- } = issueTypeFieldsSlice.actions;
3059
- const selectIssueTypeFieldsMapping = (state) => state.issueTypeFieldsReducer.instances;
3060
- const selectIssueTypeFields = toolkit.createSelector([selectIssueTypeFieldsMapping], (fieldsMapping) => {
3061
- return Object.values(fieldsMapping);
3062
- });
3063
- const selectIssueTypeFieldsOfIssueType = restructureCreateSelectorWithArgs(
3064
- toolkit.createSelector([selectIssueTypeFields, (_state, issueTypeId) => issueTypeId], (fields, issueTypeId) => {
3065
- return fallbackToEmptyArray(fields.filter((field) => field.issue_type === issueTypeId));
3066
- })
3067
- );
3068
- const selectIssueTypeFieldsById = (fieldsId) => (state) => {
3069
- return state.issueTypeFieldsReducer.instances[fieldsId];
3070
- };
3071
- const issueTypeFieldsReducer = issueTypeFieldsSlice.reducer;
3072
2976
  const issueTypeFieldValuesAdapter = createModelAdapter(
3073
2977
  (fieldValues) => fieldValues.offline_id
3074
2978
  );
3075
- const initialState$6 = issueTypeFieldValuesAdapter.getInitialState({});
2979
+ const initialState$7 = issueTypeFieldValuesAdapter.getInitialState({});
3076
2980
  const issueTypeFieldValuesSlice = toolkit.createSlice({
3077
2981
  name: "issueTypeFieldValues",
3078
- initialState: initialState$6,
3079
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$6)),
2982
+ initialState: initialState$7,
2983
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$7)),
3080
2984
  reducers: {
3081
2985
  initializeIssueTypeFieldValues: issueTypeFieldValuesAdapter.initialize,
3082
2986
  addIssueTypeFieldValues: issueTypeFieldValuesAdapter.addOne,
@@ -3113,6 +3017,64 @@ var __publicField = (obj, key, value) => {
3113
3017
  return state.issueTypeFieldValuesReducer.instances[fieldValuesId];
3114
3018
  };
3115
3019
  const issueTypeFieldValuesReducer = issueTypeFieldValuesSlice.reducer;
3020
+ const issueTypeFieldsAdapter = createModelAdapter((fields) => fields.offline_id);
3021
+ const initialState$6 = issueTypeFieldsAdapter.getInitialState({});
3022
+ const issueTypeFieldsSlice = toolkit.createSlice({
3023
+ name: "issueTypeFields",
3024
+ initialState: initialState$6,
3025
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$6)),
3026
+ reducers: {
3027
+ initializeIssueTypeFields: issueTypeFieldsAdapter.initialize,
3028
+ addIssueTypeFields: issueTypeFieldsAdapter.addOne,
3029
+ addIssueTypeFieldsMany: issueTypeFieldsAdapter.addMany,
3030
+ setIssueTypeFields: issueTypeFieldsAdapter.setOne,
3031
+ setIssueTypeFieldsMany: issueTypeFieldsAdapter.setMany,
3032
+ updateIssueTypeFields: issueTypeFieldsAdapter.updateOne,
3033
+ updateIssueTypeFieldsMany: issueTypeFieldsAdapter.updateMany,
3034
+ deleteIssueTypeFields: issueTypeFieldsAdapter.deleteOne,
3035
+ deleteIssueTypeFieldsMany: issueTypeFieldsAdapter.deleteMany
3036
+ }
3037
+ });
3038
+ const {
3039
+ initializeIssueTypeFields,
3040
+ addIssueTypeFields,
3041
+ addIssueTypeFieldsMany,
3042
+ setIssueTypeFields,
3043
+ setIssueTypeFieldsMany,
3044
+ updateIssueTypeFields,
3045
+ updateIssueTypeFieldsMany,
3046
+ deleteIssueTypeFields,
3047
+ deleteIssueTypeFieldsMany
3048
+ } = issueTypeFieldsSlice.actions;
3049
+ const selectIssueTypeFieldsMapping = (state) => state.issueTypeFieldsReducer.instances;
3050
+ const selectIssueTypeFields = toolkit.createSelector([selectIssueTypeFieldsMapping], (fieldsMapping) => {
3051
+ return Object.values(fieldsMapping);
3052
+ });
3053
+ const selectIssueTypeFieldsOfIssueType = restructureCreateSelectorWithArgs(
3054
+ toolkit.createSelector([selectIssueTypeFields, (_state, issueTypeId) => issueTypeId], (fields, issueTypeId) => {
3055
+ return fallbackToEmptyArray(fields.filter((field) => field.issue_type === issueTypeId));
3056
+ })
3057
+ );
3058
+ const selectLatestIssueTypeFieldsOfIssueType = restructureCreateSelectorWithArgs(
3059
+ toolkit.createSelector([selectIssueTypeFields, (_state, id) => id], (fields, id) => {
3060
+ return fields.filter((field) => field.issue_type === id).sort((a, b) => a.submitted_at > b.submitted_at ? -1 : 1)[0];
3061
+ })
3062
+ );
3063
+ const selectIssueTypeValuesOfIssueType = restructureCreateSelectorWithArgs(
3064
+ toolkit.createSelector(
3065
+ [selectIssueTypeFields, selectIssueTypeFieldValues, (_state, id) => id],
3066
+ (fields, fieldValues, id) => {
3067
+ const fieldsIds = new Set(
3068
+ fields.filter((field) => field.issue_type === id).map((field) => field.offline_id)
3069
+ );
3070
+ return fallbackToEmptyArray(fieldValues.filter((values) => fieldsIds.has(values.fields_revision)));
3071
+ }
3072
+ )
3073
+ );
3074
+ const selectIssueTypeFieldsById = (fieldsId) => (state) => {
3075
+ return state.issueTypeFieldsReducer.instances[fieldsId];
3076
+ };
3077
+ const issueTypeFieldsReducer = issueTypeFieldsSlice.reducer;
3116
3078
  const issueTypeFieldsAttachmentAdapter = createModelAdapter(
3117
3079
  (attachment) => attachment.offline_id
3118
3080
  );
@@ -3253,6 +3215,11 @@ var __publicField = (obj, key, value) => {
3253
3215
  return fallbackToEmptyArray(fields.filter((field) => field.asset_type === assetTypeId));
3254
3216
  })
3255
3217
  );
3218
+ const selectLatestAssetTypeFieldsOfAssetType = restructureCreateSelectorWithArgs(
3219
+ toolkit.createSelector([selectAssetTypeFields, (_state, id) => id], (fields, id) => {
3220
+ return fields.filter((field) => field.asset_type === id).sort((a, b) => a.submitted_at > b.submitted_at ? -1 : 1)[0];
3221
+ })
3222
+ );
3256
3223
  const selectAssetTypeFieldsById = (fieldsId) => (state) => {
3257
3224
  return state.assetTypeFieldsReducer.instances[fieldsId];
3258
3225
  };
@@ -3297,6 +3264,17 @@ var __publicField = (obj, key, value) => {
3297
3264
  return fallbackToEmptyArray(fieldValues.filter((fieldValue) => fieldValue.asset === assetId));
3298
3265
  })
3299
3266
  );
3267
+ const selectAssetTypeValuesOfAssetType = restructureCreateSelectorWithArgs(
3268
+ toolkit.createSelector(
3269
+ [selectAssetTypeFields, selectAssetTypeFieldValues, (_state, id) => id],
3270
+ (fields, fieldValues, id) => {
3271
+ const fieldsIds = new Set(
3272
+ fields.filter((field) => field.asset_type === id).map((field) => field.offline_id)
3273
+ );
3274
+ return fallbackToEmptyArray(fieldValues.filter((values) => fieldsIds.has(values.fields_revision)));
3275
+ }
3276
+ )
3277
+ );
3300
3278
  const selectAssetTypeFieldValuesById = (fieldValuesId) => (state) => {
3301
3279
  return state.assetTypeFieldValuesReducer.instances[fieldValuesId];
3302
3280
  };
@@ -5288,15 +5266,7 @@ var __publicField = (obj, key, value) => {
5288
5266
  const promise = this.enqueueRequest({
5289
5267
  method: HttpMethod.POST,
5290
5268
  url: "/issue-types/",
5291
- // Sending only whats needed here
5292
- payload: {
5293
- offline_id: offlineIssueType.offline_id,
5294
- submitted_at: offlineIssueType.submitted_at,
5295
- icon: offlineIssueType.icon,
5296
- color: offlineIssueType.color,
5297
- name: offlineIssueType.name,
5298
- description: offlineIssueType.description
5299
- },
5269
+ payload: offlineIssueType,
5300
5270
  blockers: [],
5301
5271
  blocks: [offlineIssueType.offline_id]
5302
5272
  });
@@ -7383,6 +7353,61 @@ var __publicField = (obj, key, value) => {
7383
7353
  this.dispatch(initializeFormSubmissionAttachments(result));
7384
7354
  }
7385
7355
  }
7356
+ class FormRevisionService extends BaseUploadService {
7357
+ add(payload) {
7358
+ var _a2;
7359
+ const { store } = this.client;
7360
+ const state = store.getState();
7361
+ const createdBy = (_a2 = state.userReducer.currentUser) == null ? void 0 : _a2.id;
7362
+ const offlineFormRevision = offline({
7363
+ ...payload,
7364
+ created_by: createdBy,
7365
+ revision: "Pending",
7366
+ submitted_at: (/* @__PURE__ */ new Date()).toISOString()
7367
+ });
7368
+ this.dispatch(addFormRevision(offlineFormRevision));
7369
+ const promise = this.enqueueRequest({
7370
+ description: "Create form revision",
7371
+ method: HttpMethod.POST,
7372
+ url: "/form-revisions/",
7373
+ payload: offlineFormRevision,
7374
+ blockers: [payload.form],
7375
+ blocks: [offlineFormRevision.offline_id]
7376
+ });
7377
+ void promise.then((result) => {
7378
+ this.dispatch(setFormRevision(result));
7379
+ }).catch(() => {
7380
+ this.dispatch(deleteFormRevision(offlineFormRevision.offline_id));
7381
+ });
7382
+ return [offlineFormRevision, promise];
7383
+ }
7384
+ async refreshStore(projectId, organizationId) {
7385
+ let formRevisions = [];
7386
+ const projectFormRevisions = await this.enqueueRequest({
7387
+ description: "Fetch project form revisions",
7388
+ method: HttpMethod.GET,
7389
+ url: "/form-revisions/",
7390
+ queryParams: {
7391
+ project: projectId.toString()
7392
+ },
7393
+ blockers: [projectId.toString()],
7394
+ blocks: []
7395
+ });
7396
+ formRevisions = formRevisions.concat(projectFormRevisions);
7397
+ const organizationFormRevisions = await this.enqueueRequest({
7398
+ description: "Fetch organization form revisions",
7399
+ method: HttpMethod.GET,
7400
+ url: "/form-revisions/",
7401
+ queryParams: {
7402
+ organization: organizationId.toString()
7403
+ },
7404
+ blockers: [organizationId.toString()],
7405
+ blocks: []
7406
+ });
7407
+ formRevisions = formRevisions.concat(organizationFormRevisions);
7408
+ this.dispatch(initializeFormRevisions(formRevisions));
7409
+ }
7410
+ }
7386
7411
  class AssetTypeFieldsAttachmentService extends BaseUploadService {
7387
7412
  async bulkAdd(payloads) {
7388
7413
  var _a2;
@@ -7528,24 +7553,39 @@ var __publicField = (obj, key, value) => {
7528
7553
  return [offlineAssetTypeFieldValues, promise];
7529
7554
  }
7530
7555
  bulkAdd(payload, batchSize) {
7556
+ var _a2;
7531
7557
  const submittedAt = (/* @__PURE__ */ new Date()).toISOString();
7532
7558
  const { values } = separateFilesFromValues(payload.values);
7533
- const payloadsBatches = chunkArray(payload.payloads, batchSize);
7534
- const bulkAddPayloads = payloadsBatches.map((batch) => {
7535
- return {
7559
+ const offlineAssetTypeFieldValuesMany = [];
7560
+ const batches = chunkArray(payload.payloads, batchSize ?? payload.payloads.length);
7561
+ const batchPayloads = [];
7562
+ for (const batch of batches) {
7563
+ const assetTypeFieldValuesPayloads = [];
7564
+ for (const payload2 of batch) {
7565
+ const offlineAssetTypeFieldValues = offline({
7566
+ ...payload2,
7567
+ values: separateFilesFromValues(payload2.values).values,
7568
+ created_by: (_a2 = this.client.store.getState().userReducer.currentUser) == null ? void 0 : _a2.id,
7569
+ submitted_at: submittedAt
7570
+ });
7571
+ offlineAssetTypeFieldValuesMany.push(offlineAssetTypeFieldValues);
7572
+ assetTypeFieldValuesPayloads.push({
7573
+ offline_id: offlineAssetTypeFieldValues.offline_id,
7574
+ asset: payload2.asset,
7575
+ fields_revision: payload2.fields_revision,
7576
+ published_at: payload2.published_at,
7577
+ values: offlineAssetTypeFieldValues.values
7578
+ });
7579
+ }
7580
+ batchPayloads.push({
7536
7581
  submitted_at: submittedAt,
7537
7582
  values,
7538
- field_values: batch.map((payload2) => {
7539
- const { values: values2 } = separateFilesFromValues(payload2.values);
7540
- return offline({
7541
- ...payload2,
7542
- values: values2
7543
- });
7544
- })
7545
- };
7546
- });
7583
+ field_values: assetTypeFieldValuesPayloads
7584
+ });
7585
+ }
7586
+ this.dispatch(addAssetTypeFieldValuesMany(offlineAssetTypeFieldValuesMany));
7547
7587
  const promises = [];
7548
- for (const payload2 of bulkAddPayloads) {
7588
+ for (const payload2 of batchPayloads) {
7549
7589
  const assetIds = payload2.field_values.map((x) => x.asset);
7550
7590
  const assetTypeFieldsIds = payload2.field_values.map((x) => x.fields_revision);
7551
7591
  const assetTypeFieldValuesIds = payload2.field_values.map((x) => x.offline_id);
@@ -7560,9 +7600,11 @@ var __publicField = (obj, key, value) => {
7560
7600
  promises.push(promise);
7561
7601
  }
7562
7602
  void Promise.all(promises).then((results) => {
7563
- this.dispatch(addAssetTypeFieldValuesMany(results.flat()));
7603
+ this.dispatch(updateAssetTypeFieldValuesMany(results.flat()));
7604
+ }).catch(() => {
7605
+ this.dispatch(deleteAssetTypeFieldValuesMany(offlineAssetTypeFieldValuesMany.map((x) => x.offline_id)));
7564
7606
  });
7565
- return promises;
7607
+ return [offlineAssetTypeFieldValuesMany, promises];
7566
7608
  }
7567
7609
  update(payload) {
7568
7610
  const { store } = this.client;
@@ -7586,7 +7628,13 @@ var __publicField = (obj, key, value) => {
7586
7628
  description: "Delete asset type field values",
7587
7629
  method: HttpMethod.PATCH,
7588
7630
  url: `/asset-type-field-values/${payload.offline_id}/`,
7589
- payload,
7631
+ payload: {
7632
+ ...payload,
7633
+ values: {
7634
+ ...assetTypeFieldValues.values,
7635
+ ...values
7636
+ }
7637
+ },
7590
7638
  blockers: [
7591
7639
  updatedAssetTypeFieldValues.offline_id,
7592
7640
  updatedAssetTypeFieldValues.fields_revision,
@@ -7640,54 +7688,63 @@ var __publicField = (obj, key, value) => {
7640
7688
  }
7641
7689
  }
7642
7690
  class AssetTypeFieldValuesAttachmentService extends BaseUploadService {
7643
- async bulkAdd(payloads) {
7691
+ async bulkAdd(payloads, batchSize) {
7644
7692
  var _a2;
7645
7693
  const submittedAt = (/* @__PURE__ */ new Date()).toISOString();
7646
7694
  const createdBy = (_a2 = this.client.store.getState().userReducer.currentUser) == null ? void 0 : _a2.id;
7647
- const filePayloads = {};
7695
+ const batches = chunkArray(payloads, batchSize ?? payloads.length);
7648
7696
  const offlineAssetTypeFieldValuesAttachments = [];
7649
- const attachmentPayloads = [];
7650
- for (const payload of payloads) {
7651
- const { fieldValuesId, fieldIdentifier, file } = payload;
7652
- const filePayload = await this.getFilePayload(file);
7653
- if (!(filePayload.sha1 in filePayloads))
7654
- filePayloads[filePayload.sha1] = filePayload;
7655
- const offlineAssetTypeFieldValuesAttachment = offline({
7656
- file: URL.createObjectURL(file),
7657
- file_type: file.type,
7658
- file_name: file.name,
7659
- file_sha1: filePayload.sha1,
7660
- created_by: createdBy,
7661
- field_values: fieldValuesId,
7697
+ const batchPayloads = [];
7698
+ for (const batch of batches) {
7699
+ const filePayloads = {};
7700
+ const attachmentPayloads = [];
7701
+ for (const payload of batch) {
7702
+ const { fieldValuesId, fieldIdentifier, file } = payload;
7703
+ const filePayload = await this.getFilePayload(file);
7704
+ if (!(filePayload.sha1 in filePayloads))
7705
+ filePayloads[filePayload.sha1] = filePayload;
7706
+ const offlineAssetTypeFieldValuesAttachment = offline({
7707
+ file: URL.createObjectURL(file),
7708
+ file_type: file.type,
7709
+ file_name: file.name,
7710
+ file_sha1: filePayload.sha1,
7711
+ created_by: createdBy,
7712
+ field_values: fieldValuesId,
7713
+ submitted_at: submittedAt,
7714
+ field_identifier: fieldIdentifier
7715
+ });
7716
+ offlineAssetTypeFieldValuesAttachments.push(offlineAssetTypeFieldValuesAttachment);
7717
+ const attachmentPayload = {
7718
+ offline_id: offlineAssetTypeFieldValuesAttachment.offline_id,
7719
+ file_name: file.name,
7720
+ file_sha1: filePayload.sha1,
7721
+ file_extension: filePayload.extension,
7722
+ field_identifier: fieldIdentifier,
7723
+ field_values: fieldValuesId
7724
+ };
7725
+ attachmentPayloads.push(attachmentPayload);
7726
+ }
7727
+ batchPayloads.push({
7662
7728
  submitted_at: submittedAt,
7663
- field_identifier: fieldIdentifier
7729
+ attachments: attachmentPayloads,
7730
+ files: Object.values(filePayloads)
7664
7731
  });
7665
- offlineAssetTypeFieldValuesAttachments.push(offlineAssetTypeFieldValuesAttachment);
7666
- const attachmentPayload = {
7667
- offline_id: offlineAssetTypeFieldValuesAttachment.offline_id,
7668
- file_name: file.name,
7669
- file_sha1: filePayload.sha1,
7670
- file_extension: filePayload.extension,
7671
- field_identifier: fieldIdentifier,
7672
- field_values: fieldValuesId
7673
- };
7674
- attachmentPayloads.push(attachmentPayload);
7675
7732
  }
7676
7733
  this.dispatch(addAssetTypeFieldValuesAttachments(offlineAssetTypeFieldValuesAttachments));
7677
- const promise = this.enqueueRequest({
7678
- description: "Add asset type field values attachments",
7679
- method: HttpMethod.POST,
7680
- url: "/asset-type-field-values-attachments/bulk/",
7681
- payload: {
7682
- submitted_at: submittedAt,
7683
- attachments: attachmentPayloads,
7684
- files: Object.values(filePayloads)
7685
- },
7686
- blockers: offlineAssetTypeFieldValuesAttachments.map((attachment) => attachment.field_values),
7687
- blocks: offlineAssetTypeFieldValuesAttachments.map((attachment) => attachment.offline_id)
7734
+ const promises = batchPayloads.map((payload) => {
7735
+ return this.enqueueRequest({
7736
+ description: "Add asset type field values attachments",
7737
+ method: HttpMethod.POST,
7738
+ url: "/asset-type-field-values-attachments/bulk/",
7739
+ payload,
7740
+ blockers: payload.attachments.map((payload2) => payload2.field_values),
7741
+ blocks: payload.attachments.map((payload2) => payload2.offline_id)
7742
+ });
7688
7743
  });
7689
- promise.then(({ presigned_urls, attachments }) => {
7690
- this.processPresignedUrls(presigned_urls);
7744
+ Promise.all(promises).then((result) => {
7745
+ for (const res of result)
7746
+ this.processPresignedUrls(res.presigned_urls);
7747
+ const attachments = result.flatMap((res) => res.attachments);
7691
7748
  this.dispatch(updateAssetTypeFieldValuesAttachments(attachments));
7692
7749
  }).catch((error) => {
7693
7750
  this.dispatch(
@@ -7697,7 +7754,10 @@ var __publicField = (obj, key, value) => {
7697
7754
  );
7698
7755
  throw error;
7699
7756
  });
7700
- return [offlineAssetTypeFieldValuesAttachments, promise.then(({ attachments }) => attachments)];
7757
+ return [
7758
+ offlineAssetTypeFieldValuesAttachments,
7759
+ promises.map((promise) => promise.then(({ attachments }) => attachments))
7760
+ ];
7701
7761
  }
7702
7762
  async bulkDelete(ids) {
7703
7763
  const { store } = this.client;
@@ -7720,7 +7780,7 @@ var __publicField = (obj, key, value) => {
7720
7780
  }
7721
7781
  async refreshStore(projectId) {
7722
7782
  const result = await this.enqueueRequest({
7723
- description: "Gfet asset type field values attachments",
7783
+ description: "Get asset type field values attachments",
7724
7784
  method: HttpMethod.GET,
7725
7785
  url: "/asset-type-field-values-attachments/",
7726
7786
  queryParams: {
@@ -7991,7 +8051,13 @@ var __publicField = (obj, key, value) => {
7991
8051
  description: "Update issue type field values",
7992
8052
  method: HttpMethod.PATCH,
7993
8053
  url: `/issue-type-field-values/${payload.offline_id}/`,
7994
- payload,
8054
+ payload: {
8055
+ ...payload,
8056
+ values: {
8057
+ ...issueTypeFieldValues.values,
8058
+ ...values
8059
+ }
8060
+ },
7995
8061
  blockers: [
7996
8062
  updatedIssueTypeFieldValues.offline_id,
7997
8063
  updatedIssueTypeFieldValues.fields_revision,
@@ -8080,6 +8146,7 @@ var __publicField = (obj, key, value) => {
8080
8146
  exports2.EmailVerificationService = EmailVerificationService;
8081
8147
  exports2.FileService = FileService;
8082
8148
  exports2.FormRevisionAttachmentService = FormRevisionAttachmentService;
8149
+ exports2.FormRevisionService = FormRevisionService;
8083
8150
  exports2.FormService = FormService;
8084
8151
  exports2.FormSubmissionAttachmentService = FormSubmissionAttachmentService;
8085
8152
  exports2.FormSubmissionService = FormSubmissionService;
@@ -8471,6 +8538,7 @@ var __publicField = (obj, key, value) => {
8471
8538
  exports2.selectAssetTypeFieldsMapping = selectAssetTypeFieldsMapping;
8472
8539
  exports2.selectAssetTypeFieldsOfAssetType = selectAssetTypeFieldsOfAssetType;
8473
8540
  exports2.selectAssetTypeStagesMapping = selectAssetTypeStagesMapping;
8541
+ exports2.selectAssetTypeValuesOfAssetType = selectAssetTypeValuesOfAssetType;
8474
8542
  exports2.selectAssetTypes = selectAssetTypes;
8475
8543
  exports2.selectAssetTypesByIds = selectAssetTypesByIds;
8476
8544
  exports2.selectAssetTypesMapping = selectAssetTypesMapping;
@@ -8528,14 +8596,11 @@ var __publicField = (obj, key, value) => {
8528
8596
  exports2.selectFormSubmissionAttachmentsMapping = selectFormSubmissionAttachmentsMapping;
8529
8597
  exports2.selectFormSubmissionById = selectFormSubmissionById;
8530
8598
  exports2.selectFormSubmissions = selectFormSubmissions;
8531
- exports2.selectFormSubmissionsByFormRevisions = selectFormSubmissionsByFormRevisions;
8532
8599
  exports2.selectFormSubmissionsMapping = selectFormSubmissionsMapping;
8533
8600
  exports2.selectFormSubmissionsOfAsset = selectFormSubmissionsOfAsset;
8534
8601
  exports2.selectFormSubmissionsOfForm = selectFormSubmissionsOfForm;
8535
8602
  exports2.selectFormSubmissionsOfIssue = selectFormSubmissionsOfIssue;
8536
8603
  exports2.selectForms = selectForms;
8537
- exports2.selectFormsCount = selectFormsCount;
8538
- exports2.selectGeneralFormCount = selectGeneralFormCount;
8539
8604
  exports2.selectGeoImageById = selectGeoImageById;
8540
8605
  exports2.selectGeoImageMapping = selectGeoImageMapping;
8541
8606
  exports2.selectGeoImages = selectGeoImages;
@@ -8572,6 +8637,7 @@ var __publicField = (obj, key, value) => {
8572
8637
  exports2.selectIssueTypeFieldsMapping = selectIssueTypeFieldsMapping;
8573
8638
  exports2.selectIssueTypeFieldsOfIssueType = selectIssueTypeFieldsOfIssueType;
8574
8639
  exports2.selectIssueTypeMapping = selectIssueTypeMapping;
8640
+ exports2.selectIssueTypeValuesOfIssueType = selectIssueTypeValuesOfIssueType;
8575
8641
  exports2.selectIssueTypes = selectIssueTypes;
8576
8642
  exports2.selectIssueTypesByIds = selectIssueTypesByIds;
8577
8643
  exports2.selectIssueTypesOfOrganization = selectIssueTypesOfOrganization;
@@ -8580,8 +8646,9 @@ var __publicField = (obj, key, value) => {
8580
8646
  exports2.selectIssuesByIds = selectIssuesByIds;
8581
8647
  exports2.selectIssuesOfIssueType = selectIssuesOfIssueType;
8582
8648
  exports2.selectIssuesOfIssueTypeCount = selectIssuesOfIssueTypeCount;
8583
- exports2.selectLatestFormRevisionByForm = selectLatestFormRevisionByForm;
8649
+ exports2.selectLatestAssetTypeFieldsOfAssetType = selectLatestAssetTypeFieldsOfAssetType;
8584
8650
  exports2.selectLatestFormRevisionOfForm = selectLatestFormRevisionOfForm;
8651
+ exports2.selectLatestIssueTypeFieldsOfIssueType = selectLatestIssueTypeFieldsOfIssueType;
8585
8652
  exports2.selectLatestRetryTime = selectLatestRetryTime;
8586
8653
  exports2.selectLicense = selectLicense;
8587
8654
  exports2.selectLicenseForProject = selectLicenseForProject;
@@ -8618,7 +8685,6 @@ var __publicField = (obj, key, value) => {
8618
8685
  exports2.selectProjectsOfOrganization = selectProjectsOfOrganization;
8619
8686
  exports2.selectRehydrated = selectRehydrated;
8620
8687
  exports2.selectRootDocuments = selectRootDocuments;
8621
- exports2.selectSortedFormSubmissionsOfForm = selectSortedFormSubmissionsOfForm;
8622
8688
  exports2.selectSortedOrganizationUsers = selectSortedOrganizationUsers;
8623
8689
  exports2.selectSortedProjectUsers = selectSortedProjectUsers;
8624
8690
  exports2.selectStageFormIdsFromStageIds = selectStageFormIdsFromStageIds;