@builttocreate/engine-utils 2.11.0-beta.1 → 2.11.0-beta.3

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.
@@ -270,7 +270,7 @@ var getCleanedJoyDocPages = exports.getCleanedJoyDocPages = function getCleanedJ
270
270
  * Step 1: Replace pages[x]._id if it is not valid (always use objectId for pages)
271
271
  */
272
272
  var nextPage = _objectSpread({}, page);
273
- if (nextPage._id && !(0, _validateObjectId["default"])(nextPage._id)) nextPage._id = (0, _generateObjectId["default"])();
273
+ if (nextPage._id && !(0, _validateObjectId["default"])(nextPage._id) && !(0, _validateReadableId["default"])(nextPage._id)) nextPage._id = (0, _generateObjectId["default"])();
274
274
  if (nextPage.fieldPositions && nextPage.fieldPositions.length > 0) {
275
275
  nextPage.fieldPositions = nextPage.fieldPositions.map(function (fieldPosition) {
276
276
  /**
@@ -280,7 +280,7 @@ var getCleanedJoyDocPages = exports.getCleanedJoyDocPages = function getCleanedJ
280
280
  var nextFieldPosition = _objectSpread({}, fieldPosition);
281
281
 
282
282
  // Clean fieldPosition _id
283
- nextFieldPosition._id = nextFieldPosition._id && (0, _validateObjectId["default"])(nextFieldPosition._id) ? nextFieldPosition._id : (0, _generateObjectId["default"])();
283
+ nextFieldPosition._id = nextFieldPosition._id && ((0, _validateObjectId["default"])(nextFieldPosition._id) || (0, _validateReadableId["default"])(nextFieldPosition._id)) ? nextFieldPosition._id : (0, _generateObjectId["default"])();
284
284
 
285
285
  // Clean fieldPosition.field reference
286
286
  nextFieldPosition.field = getFieldId(nextFieldPosition.field, fieldPosition.type, doc);
@@ -452,7 +452,7 @@ var duplicateDocumentPage = exports.duplicateDocumentPage = function duplicateDo
452
452
  var newPageId = (0, _generateObjectId["default"])();
453
453
  var fieldLookup = {};
454
454
  (_nextDoc$fields = nextDoc.fields) === null || _nextDoc$fields === void 0 || _nextDoc$fields.forEach(function (field) {
455
- if (field.file === fileId) fieldLookup[field._id] = field;
455
+ fieldLookup[field._id] = field;
456
456
  });
457
457
 
458
458
  /**
@@ -484,6 +484,7 @@ var duplicateDocumentPage = exports.duplicateDocumentPage = function duplicateDo
484
484
  var newFieldsLookupByOldId = {};
485
485
  var duplicatedFields = [];
486
486
  fieldIdsToDuplicate.forEach(function (fieldId) {
487
+ var _nextDoc$files$fileIn, _nextDoc$files$fileIn2;
487
488
  /**
488
489
  * Why do we check if a new field has already been created?
489
490
  *
@@ -494,9 +495,21 @@ var duplicateDocumentPage = exports.duplicateDocumentPage = function duplicateDo
494
495
  */
495
496
  if (newFieldsLookupByOldId[fieldId]) return;
496
497
  var field = fieldLookup[fieldId];
498
+
499
+ // Skip if field not found in lookup
500
+ if (!field) return;
501
+
502
+ // Generate readable ID using current fields plus already duplicated fields
503
+ var allFields = [].concat((0, _toConsumableArray2["default"])(nextDoc.fields), (0, _toConsumableArray2["default"])(duplicatedFields));
497
504
  var duplicateField = _objectSpread(_objectSpread({}, field), {}, {
498
- _id: (0, _generateObjectId["default"])()
505
+ _id: (0, _generateReadableId.generateReadableId)({
506
+ fields: allFields,
507
+ pages: (_nextDoc$files$fileIn = nextDoc.files[fileIndex]) === null || _nextDoc$files$fileIn === void 0 ? void 0 : _nextDoc$files$fileIn.pages,
508
+ views: (_nextDoc$files$fileIn2 = nextDoc.files[fileIndex]) === null || _nextDoc$files$fileIn2 === void 0 ? void 0 : _nextDoc$files$fileIn2.views
509
+ }, field.type)
499
510
  });
511
+ // Remove formulas property when duplicating
512
+ delete duplicateField.formulas;
500
513
  duplicatedFields.push(duplicateField);
501
514
 
502
515
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builttocreate/engine-utils",
3
- "version": "2.11.0-beta.1",
3
+ "version": "2.11.0-beta.3",
4
4
  "description": "Utility library for common logic shared across web and mobile",
5
5
  "main": "dist/index.js",
6
6
  "files": [