@builttocreate/engine-utils 2.11.0-beta.2 → 2.11.0-beta.4

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.
@@ -212,12 +212,27 @@ var removeOrphanedFieldsFromJoydoc = exports.removeOrphanedFieldsFromJoydoc = fu
212
212
  var nextDoc = _objectSpread({}, doc);
213
213
  var associatedFieldIdLookup = {};
214
214
  nextDoc === null || nextDoc === void 0 || (_nextDoc$files = nextDoc.files) === null || _nextDoc$files === void 0 || _nextDoc$files.forEach(function (file) {
215
- var _file$views;
215
+ var _file$header, _file$footer, _file$pages, _file$views;
216
+ /**
217
+ * Header
218
+ */
219
+ if (file.header) (_file$header = file.header) === null || _file$header === void 0 || (_file$header = _file$header.fieldPositions) === null || _file$header === void 0 || _file$header.forEach(function (fieldPosition) {
220
+ return associatedFieldIdLookup[fieldPosition.field] = true;
221
+ });
222
+
223
+ /**
224
+ * Footer
225
+ */
226
+ if (file.footer) (_file$footer = file.footer) === null || _file$footer === void 0 || (_file$footer = _file$footer.fieldPositions) === null || _file$footer === void 0 || _file$footer.forEach(function (fieldPosition) {
227
+ return associatedFieldIdLookup[fieldPosition.field] = true;
228
+ });
229
+
216
230
  /**
217
231
  * Primary view
218
232
  */
219
- file.pages.forEach(function (page) {
220
- page === null || page === void 0 || page.fieldPositions.forEach(function (fieldPosition) {
233
+ (_file$pages = file.pages) === null || _file$pages === void 0 || _file$pages.forEach(function (page) {
234
+ var _page$fieldPositions;
235
+ page === null || page === void 0 || (_page$fieldPositions = page.fieldPositions) === null || _page$fieldPositions === void 0 || _page$fieldPositions.forEach(function (fieldPosition) {
221
236
  return associatedFieldIdLookup[fieldPosition.field] = true;
222
237
  });
223
238
  });
@@ -228,7 +243,8 @@ var removeOrphanedFieldsFromJoydoc = exports.removeOrphanedFieldsFromJoydoc = fu
228
243
  (_file$views = file.views) === null || _file$views === void 0 || _file$views.forEach(function (view) {
229
244
  var _view$pages;
230
245
  view === null || view === void 0 || (_view$pages = view.pages) === null || _view$pages === void 0 || _view$pages.forEach(function (page) {
231
- page === null || page === void 0 || page.fieldPositions.forEach(function (fieldPosition) {
246
+ var _page$fieldPositions2;
247
+ page === null || page === void 0 || (_page$fieldPositions2 = page.fieldPositions) === null || _page$fieldPositions2 === void 0 || _page$fieldPositions2.forEach(function (fieldPosition) {
232
248
  return associatedFieldIdLookup[fieldPosition.field] = true;
233
249
  });
234
250
  });
@@ -452,7 +468,7 @@ var duplicateDocumentPage = exports.duplicateDocumentPage = function duplicateDo
452
468
  var newPageId = (0, _generateObjectId["default"])();
453
469
  var fieldLookup = {};
454
470
  (_nextDoc$fields = nextDoc.fields) === null || _nextDoc$fields === void 0 || _nextDoc$fields.forEach(function (field) {
455
- if (field.file === fileId) fieldLookup[field._id] = field;
471
+ fieldLookup[field._id] = field;
456
472
  });
457
473
 
458
474
  /**
@@ -484,6 +500,7 @@ var duplicateDocumentPage = exports.duplicateDocumentPage = function duplicateDo
484
500
  var newFieldsLookupByOldId = {};
485
501
  var duplicatedFields = [];
486
502
  fieldIdsToDuplicate.forEach(function (fieldId) {
503
+ var _nextDoc$files$fileIn, _nextDoc$files$fileIn2;
487
504
  /**
488
505
  * Why do we check if a new field has already been created?
489
506
  *
@@ -494,9 +511,21 @@ var duplicateDocumentPage = exports.duplicateDocumentPage = function duplicateDo
494
511
  */
495
512
  if (newFieldsLookupByOldId[fieldId]) return;
496
513
  var field = fieldLookup[fieldId];
514
+
515
+ // Skip if field not found in lookup
516
+ if (!field) return;
517
+
518
+ // Generate readable ID using current fields plus already duplicated fields
519
+ var allFields = [].concat((0, _toConsumableArray2["default"])(nextDoc.fields), (0, _toConsumableArray2["default"])(duplicatedFields));
497
520
  var duplicateField = _objectSpread(_objectSpread({}, field), {}, {
498
- _id: (0, _generateObjectId["default"])()
521
+ _id: (0, _generateReadableId.generateReadableId)({
522
+ fields: allFields,
523
+ pages: (_nextDoc$files$fileIn = nextDoc.files[fileIndex]) === null || _nextDoc$files$fileIn === void 0 ? void 0 : _nextDoc$files$fileIn.pages,
524
+ views: (_nextDoc$files$fileIn2 = nextDoc.files[fileIndex]) === null || _nextDoc$files$fileIn2 === void 0 ? void 0 : _nextDoc$files$fileIn2.views
525
+ }, field.type)
499
526
  });
527
+ // Remove formulas property when duplicating
528
+ delete duplicateField.formulas;
500
529
  duplicatedFields.push(duplicateField);
501
530
 
502
531
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builttocreate/engine-utils",
3
- "version": "2.11.0-beta.2",
3
+ "version": "2.11.0-beta.4",
4
4
  "description": "Utility library for common logic shared across web and mobile",
5
5
  "main": "dist/index.js",
6
6
  "files": [