@builttocreate/engine-utils 2.8.0-beta.1 → 2.8.0-beta.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.
@@ -1,49 +1,32 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports.sortPages = exports.sortFieldPositionsByXAndYCoordinates = exports.mergeAssoicatedFieldPositionsForMobilePage = exports.getPageOrder = exports.getMobileViewFromFile = exports.getDocumentFromTemplate = exports.getDefaultTemplate = exports.getDefaultJoyDocPage = exports.getDefaultJoyDocFile = exports.getDefaultJoyDoc = exports.getDefaultDocument = exports.getCleanedJoyDocPages = exports.getCleanedJoyDoc = exports.generateMobileViewFromFile = exports.generateMobilePageFieldPositions = exports.generateMobilePage = exports.formatTableFieldPositions = exports.duplicateDocumentPage = exports.duplicate = exports["default"] = exports.cleanPageOrder = void 0;
9
-
7
+ exports.sortPages = exports.sortFieldPositionsByXAndYCoordinates = exports.removeOrphanedFieldsFromJoydoc = exports.mergeAssoicatedFieldPositionsForMobilePage = exports.getPageOrder = exports.getMobileViewFromFile = exports.getDocumentFromTemplate = exports.getDefaultTemplate = exports.getDefaultJoyDocPage = exports.getDefaultJoyDocFile = exports.getDefaultJoyDoc = exports.getDefaultDocument = exports.getCleanedJoyDocPages = exports.getCleanedJoyDoc = exports.generateMobileViewFromFile = exports.generateMobilePageFieldPositions = exports.generateMobilePage = exports.formatTableFieldPositions = exports.duplicateDocumentPage = exports.duplicate = exports["default"] = exports.cleanPageOrder = void 0;
10
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
-
12
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
10
  var _generateObjectId = _interopRequireDefault(require("./generateObjectId"));
15
-
16
11
  var _validateObjectId = _interopRequireDefault(require("./validateObjectId"));
17
-
18
12
  var _PageLayoutModes = _interopRequireDefault(require("./constants/PageLayoutModes"));
19
-
20
13
  var _FieldPresentationModes = _interopRequireDefault(require("./constants/FieldPresentationModes"));
21
-
22
14
  var _DocumentTypes = _interopRequireDefault(require("./constants/DocumentTypes"));
23
-
24
15
  var _PageTypes = _interopRequireDefault(require("./constants/PageTypes"));
25
-
26
16
  var _FieldTypes = _interopRequireDefault(require("./constants/FieldTypes"));
27
-
28
17
  var _FieldDisplayTypes = _interopRequireDefault(require("./constants/FieldDisplayTypes"));
29
-
30
18
  var _FileViews = _interopRequireDefault(require("./constants/FileViews"));
31
-
32
19
  var _FormStyleOptions = _interopRequireDefault(require("./constants/FormStyleOptions"));
33
-
34
20
  var _tableHelper = require("./tableHelper");
35
-
36
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
37
-
38
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
39
-
21
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
22
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
40
23
  /**
41
24
  * Create default page
42
25
  *
43
26
  * @param {Object} defaults
44
27
  * @return {Object}
45
28
  */
46
- var getDefaultJoyDocPage = function getDefaultJoyDocPage() {
29
+ var getDefaultJoyDocPage = exports.getDefaultJoyDocPage = function getDefaultJoyDocPage() {
47
30
  var defaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
48
31
  return _objectSpread({
49
32
  _id: (0, _generateObjectId["default"])(),
@@ -58,6 +41,7 @@ var getDefaultJoyDocPage = function getDefaultJoyDocPage() {
58
41
  padding: 24
59
42
  }, defaults);
60
43
  };
44
+
61
45
  /**
62
46
  * Create default file
63
47
  *
@@ -65,11 +49,7 @@ var getDefaultJoyDocPage = function getDefaultJoyDocPage() {
65
49
  * @param {Object} pageDefaults
66
50
  * @return {Object}
67
51
  */
68
-
69
-
70
- exports.getDefaultJoyDocPage = getDefaultJoyDocPage;
71
-
72
- var getDefaultJoyDocFile = function getDefaultJoyDocFile() {
52
+ var getDefaultJoyDocFile = exports.getDefaultJoyDocFile = function getDefaultJoyDocFile() {
73
53
  var defaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
74
54
  var pageDefaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
75
55
  var page = getDefaultJoyDocPage(pageDefaults);
@@ -83,6 +63,7 @@ var getDefaultJoyDocFile = function getDefaultJoyDocFile() {
83
63
  }
84
64
  }, defaults);
85
65
  };
66
+
86
67
  /**
87
68
  * Create default document
88
69
  *
@@ -90,11 +71,7 @@ var getDefaultJoyDocFile = function getDefaultJoyDocFile() {
90
71
  * @param {Object} pageDefaults
91
72
  * @return {Object}
92
73
  */
93
-
94
-
95
- exports.getDefaultJoyDocFile = getDefaultJoyDocFile;
96
-
97
- var getDefaultJoyDoc = function getDefaultJoyDoc() {
74
+ var getDefaultJoyDoc = exports.getDefaultJoyDoc = function getDefaultJoyDoc() {
98
75
  var defaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
99
76
  var fileDefaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
100
77
  var pageDefaults = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
@@ -107,6 +84,7 @@ var getDefaultJoyDoc = function getDefaultJoyDoc() {
107
84
  fields: []
108
85
  }, defaults);
109
86
  };
87
+
110
88
  /**
111
89
  * Get Clean JoyDoc Format
112
90
  *
@@ -121,78 +99,161 @@ var getDefaultJoyDoc = function getDefaultJoyDoc() {
121
99
  * @param {Object} doc
122
100
  * @returns {Object}
123
101
  */
124
-
125
-
126
- exports.getDefaultJoyDoc = getDefaultJoyDoc;
127
-
128
- var getCleanedJoyDoc = function getCleanedJoyDoc(doc) {
102
+ var getCleanedJoyDoc = exports.getCleanedJoyDoc = function getCleanedJoyDoc(doc) {
129
103
  if (!doc) return getDefaultJoyDoc();
104
+ var nextDoc = removeOrphanedFieldsFromJoydoc(doc);
130
105
 
131
- var nextDoc = _objectSpread({}, doc);
132
106
  /**
133
107
  * Step 1.1: Replace doc._id if it is not valid
134
108
  */
135
-
136
-
137
109
  if (nextDoc._id && !(0, _validateObjectId["default"])(nextDoc._id)) nextDoc._id = (0, _generateObjectId["default"])();
138
-
139
110
  if (nextDoc.files && nextDoc.files.length > 0) {
140
111
  nextDoc.files = nextDoc.files.map(function (file) {
141
112
  var _nextFile$views;
142
-
143
113
  var nextFile = _objectSpread({}, file);
114
+
144
115
  /**
145
116
  * Step 1.2: Replace files[x]._id if it is not valid
146
117
  */
147
-
148
-
149
118
  if (nextFile._id && !(0, _validateObjectId["default"])(nextFile._id)) nextFile._id = (0, _generateObjectId["default"])();
119
+
150
120
  /**
151
121
  * Step 1.3: Replace page ids and field ids if they are not valid
152
122
  */
153
-
154
123
  nextFile.pages = getCleanedJoyDocPages(nextFile.pages);
155
124
  nextFile.pageOrder = cleanPageOrder(getPageOrder(nextFile.pageOrder, nextFile.pages), nextFile.pages);
125
+
156
126
  /**
157
127
  * Step 1.4: Replace view page ids and field ids if they are not valid
158
128
  */
159
-
160
129
  if ((nextFile === null || nextFile === void 0 ? void 0 : (_nextFile$views = nextFile.views) === null || _nextFile$views === void 0 ? void 0 : _nextFile$views.length) > 0) {
161
130
  nextFile.views = nextFile.views.map(function (view) {
162
131
  var nextView = _objectSpread({}, view);
163
-
164
132
  nextView.pages = getCleanedJoyDocPages(nextView.pages);
165
133
  nextView.pageOrder = cleanPageOrder(getPageOrder(nextView.pageOrder, nextView.pages), nextView.pages);
166
134
  return nextView;
167
135
  });
168
136
  }
169
-
170
137
  return nextFile;
171
138
  });
172
139
  } else {
173
140
  nextDoc.files = [getDefaultJoyDocFile()];
174
141
  }
142
+
175
143
  /**
176
144
  * Logic below is used to clean the table field rowOrder by removing the
177
145
  * deletedRowIds / duplicateRowIds from the rowOrder.
178
146
  **/
179
-
180
-
181
147
  if (nextDoc.fields && nextDoc.fields.length > 0) {
182
148
  nextDoc.fields = nextDoc.fields.map(function (field) {
183
149
  var nextField = _objectSpread({}, field);
184
-
185
150
  if (field.type === _FieldTypes["default"].table) {
186
151
  var cleanedRoworder = (0, _tableHelper.getCleanedRowOrder)(field.rowOrder, field.value);
187
152
  nextField.rowOrder = cleanedRoworder;
188
153
  }
189
-
190
154
  return nextField;
191
155
  });
192
156
  }
193
-
194
157
  return nextDoc;
195
158
  };
159
+
160
+ /**
161
+ * Remove orphaned fields from doc
162
+ */
163
+
164
+ // export const removeOrphanedFieldsFromJoydoc = (doc) => {
165
+
166
+ // const nextDoc = { ...doc };
167
+
168
+ // /**
169
+ // * Logic below removes orphaned fields (ie fields without fieldPositions)
170
+ // */
171
+
172
+ // nextDoc.fields = nextDoc.fields.filter((field) => {
173
+
174
+ // let isOrphanedField = true;
175
+
176
+ // nextDoc.files.forEach((file) => {
177
+
178
+ // const primaryViewPages = file.pages;
179
+
180
+ // // Check if field is associated with any field positions in primary view pages
181
+ // const isFieldAssociatedWithPrimaryView = primaryViewPages.some((page) => {
182
+ // return page.fieldPositions.some((fieldPosition) => fieldPosition.field === field._id);
183
+ // });
184
+
185
+ // // Check if field is associated with other views
186
+ // let isFieldAssociatedWithAnotherView;
187
+
188
+ // if (file.views && file.views.length > 0) {
189
+
190
+ // isFieldAssociatedWithAnotherView = file.views.some((view) => {
191
+ // return view.pages.some((page) => {
192
+ // return page.fieldPositions.some((fieldPosition) => fieldPosition.field === field._id);
193
+ // });
194
+ // });
195
+
196
+ // }
197
+
198
+ // if (isFieldAssociatedWithPrimaryView || isFieldAssociatedWithAnotherView) {
199
+ // isOrphanedField = false;
200
+ // }
201
+
202
+ // });
203
+
204
+ // if (!isOrphanedField) return field;
205
+
206
+ // return null;
207
+
208
+ // });
209
+
210
+ // return nextDoc;
211
+
212
+ // };
213
+
214
+ var removeOrphanedFieldsFromJoydoc = exports.removeOrphanedFieldsFromJoydoc = function removeOrphanedFieldsFromJoydoc(doc) {
215
+ var _nextDoc$files;
216
+ var nextDoc = _objectSpread({}, doc);
217
+ var associatedFieldIdLookup = {};
218
+ nextDoc === null || nextDoc === void 0 ? void 0 : (_nextDoc$files = nextDoc.files) === null || _nextDoc$files === void 0 ? void 0 : _nextDoc$files.forEach(function (file) {
219
+ var _file$views;
220
+ /**
221
+ * Primary view
222
+ */
223
+ file.pages.forEach(function (page) {
224
+ page.fieldPositions.forEach(function (fieldPosition) {
225
+ return associatedFieldIdLookup[fieldPosition.field] = true;
226
+ });
227
+ });
228
+
229
+ /**
230
+ * Alternative view
231
+ */
232
+ (_file$views = file.views) === null || _file$views === void 0 ? void 0 : _file$views.forEach(function (view) {
233
+ var _view$pages;
234
+ view === null || view === void 0 ? void 0 : (_view$pages = view.pages) === null || _view$pages === void 0 ? void 0 : _view$pages.forEach(function (page) {
235
+ page === null || page === void 0 ? void 0 : page.fieldPositions.forEach(function (fieldPosition) {
236
+ return associatedFieldIdLookup[fieldPosition.field] = true;
237
+ });
238
+ });
239
+ });
240
+ });
241
+
242
+ /**
243
+ * Logic below removes orphaned fields (ie fields without fieldPositions)
244
+ */
245
+ var validFields = [];
246
+ var deletedFields = [];
247
+ nextDoc.fields.forEach(function (field) {
248
+ if (associatedFieldIdLookup[field._id]) validFields.push(field);else deletedFields.push(field);
249
+ });
250
+ nextDoc.fields = validFields;
251
+ nextDoc.deletedFields = deletedFields;
252
+ return {
253
+ doc: nextDoc
254
+ };
255
+ };
256
+
196
257
  /**
197
258
  * Get Cleaned JoyDoc Pages
198
259
  *
@@ -205,27 +266,20 @@ var getCleanedJoyDoc = function getCleanedJoyDoc(doc) {
205
266
  * @param {Object} doc
206
267
  * @returns {Object}
207
268
  */
208
-
209
-
210
- exports.getCleanedJoyDoc = getCleanedJoyDoc;
211
-
212
- var getCleanedJoyDocPages = function getCleanedJoyDocPages(pages) {
269
+ var getCleanedJoyDocPages = exports.getCleanedJoyDocPages = function getCleanedJoyDocPages(pages) {
213
270
  if ((pages === null || pages === void 0 ? void 0 : pages.length) > 0) {
214
271
  return pages.map(function (page) {
215
272
  /**
216
273
  * Step 1: Replace pages[x]._id if it is not valid
217
274
  */
218
275
  var nextPage = _objectSpread({}, page);
219
-
220
276
  if (nextPage._id && !(0, _validateObjectId["default"])(nextPage._id)) nextPage._id = (0, _generateObjectId["default"])();
221
-
222
277
  if (nextPage.fieldPositions && nextPage.fieldPositions.length > 0) {
223
278
  nextPage.fieldPositions = nextPage.fieldPositions.map(function (fieldPosition) {
224
279
  /**
225
280
  * Step 1.2: Replace fieldPosition _id and field reference if they are not valid
226
281
  */
227
282
  var nextFieldPosition = _objectSpread({}, fieldPosition);
228
-
229
283
  if (nextFieldPosition._id && !(0, _validateObjectId["default"])(nextFieldPosition._id)) nextFieldPosition._id = (0, _generateObjectId["default"])();
230
284
  if (nextFieldPosition.field && !(0, _validateObjectId["default"])(nextFieldPosition.field)) nextFieldPosition.field = (0, _generateObjectId["default"])();
231
285
  return nextFieldPosition;
@@ -233,13 +287,13 @@ var getCleanedJoyDocPages = function getCleanedJoyDocPages(pages) {
233
287
  } else {
234
288
  nextPage.fieldPositions = [];
235
289
  }
236
-
237
290
  return nextPage;
238
291
  });
239
292
  } else {
240
293
  return [getDefaultJoyDocPage()];
241
294
  }
242
295
  };
296
+
243
297
  /**
244
298
  * Get page order
245
299
  *
@@ -247,15 +301,12 @@ var getCleanedJoyDocPages = function getCleanedJoyDocPages(pages) {
247
301
  * @param {Array} pageOrder
248
302
  * @return {Array}
249
303
  */
250
-
251
-
252
- exports.getCleanedJoyDocPages = getCleanedJoyDocPages;
253
-
254
- var getPageOrder = function getPageOrder(pageOrder, pages) {
304
+ var getPageOrder = exports.getPageOrder = function getPageOrder(pageOrder, pages) {
255
305
  return pageOrder || pages.map(function (page) {
256
306
  return page._id;
257
307
  });
258
308
  };
309
+
259
310
  /**
260
311
  *
261
312
  * Clean pageOrder
@@ -268,11 +319,7 @@ var getPageOrder = function getPageOrder(pageOrder, pages) {
268
319
  * @param {Array} pages //[object, object, ...]
269
320
  * @returns {Array}
270
321
  */
271
-
272
-
273
- exports.getPageOrder = getPageOrder;
274
-
275
- var cleanPageOrder = function cleanPageOrder(pageOrder, pages) {
322
+ var cleanPageOrder = exports.cleanPageOrder = function cleanPageOrder(pageOrder, pages) {
276
323
  var pageLookup = {};
277
324
  pages.forEach(function (page) {
278
325
  return pageLookup[page._id] = page && !page.deleted;
@@ -281,14 +328,11 @@ var cleanPageOrder = function cleanPageOrder(pageOrder, pages) {
281
328
  return pageLookup[pageId] && pageId && pageOrder.indexOf(pageId) === index;
282
329
  });
283
330
  };
331
+
284
332
  /**
285
333
  * Sort pages based on pageOrder
286
334
  */
287
-
288
-
289
- exports.cleanPageOrder = cleanPageOrder;
290
-
291
- var sortPages = function sortPages(pages, pageOrder) {
335
+ var sortPages = exports.sortPages = function sortPages(pages, pageOrder) {
292
336
  if (!pageOrder) return pages;
293
337
  var pageLookup = {};
294
338
  pages.forEach(function (page) {
@@ -300,20 +344,15 @@ var sortPages = function sortPages(pages, pageOrder) {
300
344
  });
301
345
  return sortedPages;
302
346
  };
347
+
303
348
  /**
304
349
  * Get a properly formatted Document JoyDoc
305
350
  *
306
351
  * @returns {Object}
307
352
  */
308
-
309
-
310
- exports.sortPages = sortPages;
311
-
312
- var getDefaultDocument = function getDefaultDocument() {
353
+ var getDefaultDocument = exports.getDefaultDocument = function getDefaultDocument() {
313
354
  var type = _DocumentTypes["default"].document;
314
-
315
355
  var _id = (0, _generateObjectId["default"])();
316
-
317
356
  var identifier = "doc_".concat(_id);
318
357
  var name = 'New Doc';
319
358
  return getDefaultJoyDoc({
@@ -323,20 +362,15 @@ var getDefaultDocument = function getDefaultDocument() {
323
362
  name: name
324
363
  });
325
364
  };
365
+
326
366
  /**
327
367
  * Get a properly formatted Template JoyDoc
328
368
  *
329
369
  * @returns {Object}
330
370
  */
331
-
332
-
333
- exports.getDefaultDocument = getDefaultDocument;
334
-
335
- var getDefaultTemplate = function getDefaultTemplate() {
371
+ var getDefaultTemplate = exports.getDefaultTemplate = function getDefaultTemplate() {
336
372
  var type = _DocumentTypes["default"].template;
337
-
338
373
  var _id = (0, _generateObjectId["default"])();
339
-
340
374
  var identifier = "template_".concat(_id);
341
375
  var name = 'New Template';
342
376
  return getDefaultJoyDoc({
@@ -346,21 +380,16 @@ var getDefaultTemplate = function getDefaultTemplate() {
346
380
  name: name
347
381
  });
348
382
  };
383
+
349
384
  /**
350
385
  * Get a properly formatted duplicate of a Template or Document
351
386
  *
352
387
  * @returns {Object}
353
388
  */
354
-
355
-
356
- exports.getDefaultTemplate = getDefaultTemplate;
357
-
358
- var duplicate = function duplicate(original, defaults) {
389
+ var duplicate = exports.duplicate = function duplicate(original, defaults) {
359
390
  //Remove all references to original template object
360
391
  var origin = JSON.parse(JSON.stringify(original));
361
-
362
392
  var _id = (0, _generateObjectId["default"])();
363
-
364
393
  var identifier = origin.type === _DocumentTypes["default"].template ? "template_".concat(_id) : "doc_".concat(_id);
365
394
  return _objectSpread(_objectSpread({}, origin), {}, {
366
395
  _id: _id,
@@ -369,21 +398,18 @@ var duplicate = function duplicate(original, defaults) {
369
398
  source: origin.identifier
370
399
  }, defaults);
371
400
  };
401
+
372
402
  /**
373
403
  * Get a properly formatted Document JoyDoc from Template JoyDoc
374
404
  *
375
405
  * @param {Object} template
376
406
  * @returns {Object}
377
407
  */
378
-
379
-
380
- exports.duplicate = duplicate;
381
-
382
- var getDocumentFromTemplate = function getDocumentFromTemplate(template) {
408
+ var getDocumentFromTemplate = exports.getDocumentFromTemplate = function getDocumentFromTemplate(template) {
383
409
  var _id = (0, _generateObjectId["default"])();
410
+ var identifier = "doc_".concat(_id);
384
411
 
385
- var identifier = "doc_".concat(_id); //Remove all references to original template object
386
-
412
+ //Remove all references to original template object
387
413
  var temp = JSON.parse(JSON.stringify(template));
388
414
  return {
389
415
  _id: _id,
@@ -396,6 +422,7 @@ var getDocumentFromTemplate = function getDocumentFromTemplate(template) {
396
422
  fields: temp.fields
397
423
  };
398
424
  };
425
+
399
426
  /**
400
427
  * Handle Page Duplication for JoyDoc
401
428
  *
@@ -405,13 +432,8 @@ var getDocumentFromTemplate = function getDocumentFromTemplate(template) {
405
432
  * @param {Object} pageDefaults
406
433
  * @returns {Object}
407
434
  */
408
-
409
-
410
- exports.getDocumentFromTemplate = getDocumentFromTemplate;
411
-
412
- var duplicateDocumentPage = function duplicateDocumentPage(doc, fileId, pageId) {
435
+ var duplicateDocumentPage = exports.duplicateDocumentPage = function duplicateDocumentPage(doc, fileId, pageId) {
413
436
  var _nextDoc$fields;
414
-
415
437
  var pageDefaults = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
416
438
  var changelogInfo = {
417
439
  primaryPages: {
@@ -430,25 +452,26 @@ var duplicateDocumentPage = function duplicateDocumentPage(doc, fileId, pageId)
430
452
  (_nextDoc$fields = nextDoc.fields) === null || _nextDoc$fields === void 0 ? void 0 : _nextDoc$fields.forEach(function (field) {
431
453
  if (field.file === fileId) fieldLookup[field._id] = field;
432
454
  });
455
+
433
456
  /**
434
457
  * Step 1: Duplicate fields associated with target page
435
458
  */
459
+ var fieldIdsToDuplicate = [];
436
460
 
437
- var fieldIdsToDuplicate = []; //Step 1.1 Get all field Ids from primary page
438
-
461
+ //Step 1.1 Get all field Ids from primary page
439
462
  var targetPageIndex = nextDoc.files[fileIndex].pages.findIndex(function (page) {
440
463
  return page._id === pageId;
441
464
  });
442
465
  if (targetPageIndex !== -1) nextDoc.files[fileIndex].pages[targetPageIndex].fieldPositions.forEach(function (fieldPosition) {
443
466
  return fieldIdsToDuplicate.push(fieldPosition.field);
444
- }); //Step 1.2 Get all field Ids from view page
467
+ });
445
468
 
469
+ //Step 1.2 Get all field Ids from view page
446
470
  if (nextDoc.files[fileIndex].views && nextDoc.files[fileIndex].views.length > 0) {
447
471
  nextDoc.files[fileIndex].views.forEach(function (view) {
448
472
  var viewPageIndex = view.pages.findIndex(function (page) {
449
473
  return page._id === pageId;
450
474
  });
451
-
452
475
  if (viewPageIndex !== -1) {
453
476
  view.pages[viewPageIndex].fieldPositions.forEach(function (fieldPosition) {
454
477
  if (fieldIdsToDuplicate.indexOf(fieldPosition.field) === -1) fieldIdsToDuplicate.push(fieldPosition.field);
@@ -456,7 +479,6 @@ var duplicateDocumentPage = function duplicateDocumentPage(doc, fileId, pageId)
456
479
  }
457
480
  });
458
481
  }
459
-
460
482
  var newFieldsLookupByOldId = {};
461
483
  var duplicatedFields = [];
462
484
  fieldIdsToDuplicate.forEach(function (fieldId) {
@@ -470,18 +492,17 @@ var duplicateDocumentPage = function duplicateDocumentPage(doc, fileId, pageId)
470
492
  */
471
493
  if (newFieldsLookupByOldId[fieldId]) return;
472
494
  var field = fieldLookup[fieldId];
473
-
474
495
  var duplicateField = _objectSpread(_objectSpread({}, field), {}, {
475
496
  _id: (0, _generateObjectId["default"])()
476
497
  });
477
-
478
498
  duplicatedFields.push(duplicateField);
499
+
479
500
  /**
480
501
  * Add to lookup so it can be used with other associated field positions
481
502
  */
482
-
483
503
  newFieldsLookupByOldId[field._id] = duplicateField;
484
504
  });
505
+
485
506
  /**
486
507
  * Step 2: Update newly duplicated fields logic properties
487
508
  *
@@ -491,14 +512,11 @@ var duplicateDocumentPage = function duplicateDocumentPage(doc, fileId, pageId)
491
512
  * that we are duplicating. We do this by checking the logic.condition[x].page
492
513
  * property of the condition.
493
514
  */
494
-
495
515
  duplicatedFields = duplicatedFields.map(function (duplicatedField) {
496
516
  if (!duplicatedField.logic || !duplicatedField.logic.conditions || duplicatedField.logic.conditions.length < 1) return duplicatedField;
497
-
498
517
  var nextField = _objectSpread(_objectSpread({}, duplicatedField), {}, {
499
518
  logic: _objectSpread({}, duplicatedField.logic)
500
519
  });
501
-
502
520
  nextField.logic.conditions = nextField.logic.conditions.map(function (condition) {
503
521
  /**
504
522
  * 1. Only update conditions associated with the current page being duplicated.
@@ -515,20 +533,20 @@ var duplicateDocumentPage = function duplicateDocumentPage(doc, fileId, pageId)
515
533
  });
516
534
  return nextField;
517
535
  });
536
+
518
537
  /**
519
538
  * Step 3: Add newly duplicated fields changelogs and update doucment
520
539
  */
521
-
522
540
  duplicatedFields.forEach(function (duplicateField) {
523
541
  changelogInfo.fields.push(duplicateField);
524
542
  nextDoc.fields.push(duplicateField);
525
543
  });
544
+
526
545
  /**
527
546
  * Step 4: Update Primary View Page Order
528
547
  *
529
548
  * IMPORTANT NOTE: Page order update must go before page object creation.
530
549
  */
531
-
532
550
  var pageOrder = getPageOrder(nextDoc.files[fileIndex].pageOrder, nextDoc.files[fileIndex].pages);
533
551
  var primaryPageOrderIndex = pageOrder.findIndex(function (id) {
534
552
  return id === pageId;
@@ -536,10 +554,10 @@ var duplicateDocumentPage = function duplicateDocumentPage(doc, fileId, pageId)
536
554
  var primaryPageOrderTargetIndex = primaryPageOrderIndex + 1;
537
555
  nextDoc.files[fileIndex].pageOrder = pageOrder;
538
556
  nextDoc.files[fileIndex].pageOrder.splice(primaryPageOrderTargetIndex, 0, newPageId);
557
+
539
558
  /**
540
559
  * Step 5: Generate Primary View Page
541
560
  */
542
-
543
561
  var primaryPageIndex = nextDoc.files[fileIndex].pages.findIndex(function (page) {
544
562
  return page._id === pageId;
545
563
  });
@@ -554,30 +572,29 @@ var duplicateDocumentPage = function duplicateDocumentPage(doc, fileId, pageId)
554
572
  }));
555
573
  });
556
574
  nextDoc.files[fileIndex].pages.splice(primaryPageIndex + 1, 0, newPrimaryPage);
575
+
557
576
  /**
558
577
  * Step 6: Update Primary Page Changelog
559
578
  */
560
-
561
579
  changelogInfo.primaryPages.targetIndex = primaryPageOrderTargetIndex;
562
580
  changelogInfo.primaryPages.page = newPrimaryPage;
581
+
563
582
  /**
564
583
  * Step 7: Update Views
565
584
  */
566
-
567
585
  if (nextDoc.files[fileIndex].views && nextDoc.files[fileIndex].views.length > 0) {
568
586
  nextDoc.files[fileIndex].views = nextDoc.files[fileIndex].views.map(function (view) {
569
587
  var nextView = _objectSpread({}, view);
570
-
571
588
  var viewPageIndex = nextView.pages.findIndex(function (page) {
572
589
  return page._id === pageId;
573
590
  });
574
591
  if (viewPageIndex === -1) return view;
592
+
575
593
  /**
576
594
  * Step 7.1 Update View Page Order.
577
595
  *
578
596
  * IMPORTANT NOTE: Page order update must go before page object creation.
579
597
  */
580
-
581
598
  var nextViewPageOrder = getPageOrder(nextView.pageOrder, nextView.pages);
582
599
  var nextViewPageOrderIndex = nextViewPageOrder.findIndex(function (id) {
583
600
  return id === pageId;
@@ -585,15 +602,14 @@ var duplicateDocumentPage = function duplicateDocumentPage(doc, fileId, pageId)
585
602
  var nextViewTargetPageOrderIndex = nextViewPageOrderIndex + 1;
586
603
  nextView.pageOrder = nextViewPageOrder;
587
604
  nextView.pageOrder.splice(nextViewTargetPageOrderIndex, 0, newPageId);
605
+
588
606
  /**
589
607
  * Step 7.2 Update View Pages
590
608
  */
591
-
592
609
  var newViewPage = _objectSpread(_objectSpread({}, nextView.pages[viewPageIndex]), {}, {
593
610
  _id: newPageId,
594
611
  fieldPositions: []
595
612
  }, pageDefaults);
596
-
597
613
  nextView.pages[viewPageIndex].fieldPositions.forEach(function (fieldPosition) {
598
614
  var newField = newFieldsLookupByOldId[fieldPosition.field];
599
615
  newViewPage.fieldPositions.push(_objectSpread(_objectSpread({}, fieldPosition), {}, {
@@ -601,10 +617,10 @@ var duplicateDocumentPage = function duplicateDocumentPage(doc, fileId, pageId)
601
617
  }));
602
618
  });
603
619
  nextView.pages.splice(viewPageIndex + 1, 0, newViewPage);
620
+
604
621
  /**
605
622
  * Step 7.3 Add View Page Changelog Info
606
623
  */
607
-
608
624
  changelogInfo.viewPages.push({
609
625
  viewId: view._id,
610
626
  view: view.type,
@@ -614,29 +630,23 @@ var duplicateDocumentPage = function duplicateDocumentPage(doc, fileId, pageId)
614
630
  return nextView;
615
631
  });
616
632
  }
617
-
618
633
  return {
619
634
  changelogInfo: changelogInfo,
620
635
  doc: nextDoc
621
636
  };
622
637
  };
638
+
623
639
  /**
624
640
  * Generate the mobile view and add specific mobile view properties
625
641
  *
626
642
  * @param {Object} file //Full file object
627
643
  * @returns {Object}
628
644
  */
629
-
630
-
631
- exports.duplicateDocumentPage = duplicateDocumentPage;
632
-
633
- var getMobileViewFromFile = function getMobileViewFromFile(file) {
634
- var _file$views;
635
-
636
- var mobileViewIndex = file !== null && file !== void 0 && file.views && (file === null || file === void 0 ? void 0 : (_file$views = file.views) === null || _file$views === void 0 ? void 0 : _file$views.length) > 0 ? file.views.findIndex(function (view) {
645
+ var getMobileViewFromFile = exports.getMobileViewFromFile = function getMobileViewFromFile(file) {
646
+ var _file$views2;
647
+ var mobileViewIndex = file !== null && file !== void 0 && file.views && (file === null || file === void 0 ? void 0 : (_file$views2 = file.views) === null || _file$views2 === void 0 ? void 0 : _file$views2.length) > 0 ? file.views.findIndex(function (view) {
637
648
  return view.type === _FileViews["default"].mobile;
638
649
  }) : -1;
639
-
640
650
  if (mobileViewIndex !== -1) {
641
651
  /**
642
652
  * Why do we do this? Early versions of alternative views did not contain pageOrder so
@@ -651,17 +661,14 @@ var getMobileViewFromFile = function getMobileViewFromFile(file) {
651
661
  return generateMobileViewFromFile(file);
652
662
  }
653
663
  };
664
+
654
665
  /**
655
666
  * Generates the alternative mobile view from the default file view.
656
667
  *
657
668
  * @param {Object} file //Full file object
658
669
  * @returns {Object}
659
670
  */
660
-
661
-
662
- exports.getMobileViewFromFile = getMobileViewFromFile;
663
-
664
- var generateMobileViewFromFile = function generateMobileViewFromFile(file) {
671
+ var generateMobileViewFromFile = exports.generateMobileViewFromFile = function generateMobileViewFromFile(file) {
665
672
  var pages = file.pages || [];
666
673
  var pageOrder = cleanPageOrder(getPageOrder(file.pageOrder, file.pages), file.pages);
667
674
  return {
@@ -669,30 +676,29 @@ var generateMobileViewFromFile = function generateMobileViewFromFile(file) {
669
676
  type: _FileViews["default"].mobile,
670
677
  pages: (0, _toConsumableArray2["default"])(pages).map(function (page) {
671
678
  var _id = page._id,
672
- name = page.name,
673
- identifier = page.identifier,
674
- fieldPositions = page.fieldPositions;
679
+ name = page.name,
680
+ identifier = page.identifier,
681
+ fieldPositions = page.fieldPositions,
682
+ rowHeight = page.rowHeight;
675
683
  return generateMobilePage({
676
684
  _id: _id,
677
685
  identifier: identifier,
678
686
  name: name,
679
- fieldPositions: fieldPositions
687
+ fieldPositions: fieldPositions,
688
+ rowHeight: rowHeight
680
689
  });
681
690
  }),
682
691
  pageOrder: (0, _toConsumableArray2["default"])(pageOrder)
683
692
  };
684
693
  };
694
+
685
695
  /**
686
696
  * Apply the pr
687
697
  *
688
698
  * @param {Object} page
689
699
  * @returns {Objectg}
690
700
  */
691
-
692
-
693
- exports.generateMobileViewFromFile = generateMobileViewFromFile;
694
-
695
- var generateMobilePage = function generateMobilePage(page) {
701
+ var generateMobilePage = exports.generateMobilePage = function generateMobilePage(page) {
696
702
  return _objectSpread(_objectSpread({}, page), {}, {
697
703
  fieldPositions: page.fieldPositions ? generateMobilePageFieldPositions(page.fieldPositions, page.rowHeight) : [],
698
704
  type: _PageTypes["default"].mobile,
@@ -705,15 +711,12 @@ var generateMobilePage = function generateMobilePage(page) {
705
711
  presentation: _FieldPresentationModes["default"].normal
706
712
  });
707
713
  };
708
-
709
- exports.generateMobilePage = generateMobilePage;
710
-
711
- var generateMobilePageFieldPositions = function generateMobilePageFieldPositions(fieldPositions, originalRowHeight) {
714
+ var generateMobilePageFieldPositions = exports.generateMobilePageFieldPositions = function generateMobilePageFieldPositions(fieldPositions, originalRowHeight) {
712
715
  var mobileFieldPositions = [];
716
+
713
717
  /**
714
718
  * Step 1: Sort fieldPositions
715
719
  */
716
-
717
720
  var sortedFieldPositions = sortFieldPositionsByXAndYCoordinates(fieldPositions);
718
721
  sortedFieldPositions.forEach(function (joySpecFieldPosition) {
719
722
  var mobileFieldPositionData = _objectSpread(_objectSpread({}, joySpecFieldPosition), {}, {
@@ -723,16 +726,16 @@ var generateMobilePageFieldPositions = function generateMobilePageFieldPositions
723
726
  width: 1,
724
727
  x: 0
725
728
  });
729
+
726
730
  /**
727
731
  * Step 1.2 Hide chart lines on mobile
728
732
  */
729
-
730
-
731
733
  if (joySpecFieldPosition.type === _FieldTypes["default"].chart) mobileFieldPositionData.primaryDisplayOnly = true;
732
734
  mobileFieldPositions.push(mobileFieldPositionData);
733
735
  });
734
736
  return mergeAssoicatedFieldPositionsForMobilePage(mobileFieldPositions);
735
737
  };
738
+
736
739
  /**
737
740
  * Merge Field Positions assoicated with the same Field.
738
741
  *
@@ -747,23 +750,20 @@ var generateMobilePageFieldPositions = function generateMobilePageFieldPositions
747
750
  * @param {Array} fields
748
751
  * @returns {Array}
749
752
  */
750
-
751
-
752
- exports.generateMobilePageFieldPositions = generateMobilePageFieldPositions;
753
-
754
- var mergeAssoicatedFieldPositionsForMobilePage = function mergeAssoicatedFieldPositionsForMobilePage(fieldPositions) {
753
+ var mergeAssoicatedFieldPositionsForMobilePage = exports.mergeAssoicatedFieldPositionsForMobilePage = function mergeAssoicatedFieldPositionsForMobilePage(fieldPositions) {
755
754
  var filteredFieldPositions = [];
756
755
  fieldPositions === null || fieldPositions === void 0 ? void 0 : fieldPositions.forEach(function (fieldPosition) {
757
756
  var fieldPositionIndex = filteredFieldPositions.findIndex(function (filtered) {
758
757
  var _filtered$field, _fieldPosition$field;
759
-
760
758
  return (filtered === null || filtered === void 0 ? void 0 : (_filtered$field = filtered.field) === null || _filtered$field === void 0 ? void 0 : _filtered$field.toString()) === (fieldPosition === null || fieldPosition === void 0 ? void 0 : (_fieldPosition$field = fieldPosition.field) === null || _fieldPosition$field === void 0 ? void 0 : _fieldPosition$field.toString());
761
- }); //Only add field to the list if it hasn't already been added
759
+ });
762
760
 
761
+ //Only add field to the list if it hasn't already been added
763
762
  if (fieldPositionIndex === -1) filteredFieldPositions.push(fieldPosition);
764
763
  });
765
764
  return filteredFieldPositions;
766
765
  };
766
+
767
767
  /**
768
768
  * Sort fields by their y and x coordinates
769
769
  *
@@ -789,11 +789,7 @@ var mergeAssoicatedFieldPositionsForMobilePage = function mergeAssoicatedFieldPo
789
789
  * @param {Array} fieldPositions
790
790
  * @returns {Array}
791
791
  */
792
-
793
-
794
- exports.mergeAssoicatedFieldPositionsForMobilePage = mergeAssoicatedFieldPositionsForMobilePage;
795
-
796
- var sortFieldPositionsByXAndYCoordinates = function sortFieldPositionsByXAndYCoordinates(fieldPositions) {
792
+ var sortFieldPositionsByXAndYCoordinates = exports.sortFieldPositionsByXAndYCoordinates = function sortFieldPositionsByXAndYCoordinates(fieldPositions) {
797
793
  var sortedFieldPositions = (0, _toConsumableArray2["default"])(fieldPositions);
798
794
  sortedFieldPositions.sort(function (a, b) {
799
795
  if (a.y === b.y) {
@@ -808,6 +804,7 @@ var sortFieldPositionsByXAndYCoordinates = function sortFieldPositionsByXAndYCoo
808
804
  });
809
805
  return sortedFieldPositions;
810
806
  };
807
+
811
808
  /**
812
809
  * Formats individual table cell field positions that have already been merged with their associated field.
813
810
  * This additional information is added and used for rendering the fieldPositions on the form.
@@ -817,11 +814,7 @@ var sortFieldPositionsByXAndYCoordinates = function sortFieldPositionsByXAndYCoo
817
814
  * @param {Array} fieldPositions
818
815
  * @returns {Array}
819
816
  */
820
-
821
-
822
- exports.sortFieldPositionsByXAndYCoordinates = sortFieldPositionsByXAndYCoordinates;
823
-
824
- var formatTableFieldPositions = function formatTableFieldPositions(fieldPositions) {
817
+ var formatTableFieldPositions = exports.formatTableFieldPositions = function formatTableFieldPositions(fieldPositions) {
825
818
  /**
826
819
  * We only want to generate the table value calculated lookup for each table field once.
827
820
  * We use these lookups because multiple table fieldPositions belonging to the same table
@@ -831,21 +824,20 @@ var formatTableFieldPositions = function formatTableFieldPositions(fieldPosition
831
824
  var nextFieldPositions = [];
832
825
  (0, _toConsumableArray2["default"])(fieldPositions).forEach(function (fieldPosition) {
833
826
  var nextFieldPosition = _objectSpread({}, fieldPosition);
834
-
835
827
  if (fieldPosition.type === _FieldTypes["default"].table) {
836
828
  var field = fieldPosition.field,
837
- column = fieldPosition.column,
838
- rowIndex = fieldPosition.rowIndex,
839
- tableColumns = fieldPosition.tableColumns,
840
- value = fieldPosition.value,
841
- rowOrder = fieldPosition.rowOrder,
842
- tableColumnOrder = fieldPosition.tableColumnOrder;
829
+ column = fieldPosition.column,
830
+ rowIndex = fieldPosition.rowIndex,
831
+ tableColumns = fieldPosition.tableColumns,
832
+ value = fieldPosition.value,
833
+ rowOrder = fieldPosition.rowOrder,
834
+ tableColumnOrder = fieldPosition.tableColumnOrder;
835
+
843
836
  /**
844
837
  * Step 1: Generate rows, rowOrder, tableColumns, etc. lookups for associated field. We only have to
845
838
  * do this once per-field. This increases performance if there are multiple form positions associated
846
839
  * with the same form.
847
840
  */
848
-
849
841
  if (!tableFieldLookup[field]) {
850
842
  /**
851
843
  * Step 1.1 Handle rows
@@ -853,10 +845,10 @@ var formatTableFieldPositions = function formatTableFieldPositions(fieldPosition
853
845
  var nextRows = (0, _tableHelper.getRows)(value);
854
846
  var nextRowOrder = (0, _tableHelper.getCleanedRowOrder)(rowOrder, nextRows);
855
847
  var nextSortedRows = (0, _tableHelper.sortRows)(nextRows, nextRowOrder);
848
+
856
849
  /**
857
850
  * Step 1.2 Handle columns
858
851
  */
859
-
860
852
  var nextTableColumnOrder = (0, _tableHelper.getCleanedColumnOrder)(tableColumnOrder, tableColumns);
861
853
  var nextSortedTableColumns = (0, _tableHelper.sortColumns)(tableColumns, nextTableColumnOrder);
862
854
  var nextTableColumns = (0, _tableHelper.getColumns)(nextSortedTableColumns);
@@ -864,10 +856,10 @@ var formatTableFieldPositions = function formatTableFieldPositions(fieldPosition
864
856
  nextTableColumns.forEach(function (column) {
865
857
  return nextTableColumnLookup[column._id] = column;
866
858
  });
859
+
867
860
  /**
868
861
  * Step 1.3 Handle cell calculations
869
862
  */
870
-
871
863
  var calculatedValue = (0, _tableHelper.generateTableLookup)(nextSortedRows, nextSortedTableColumns);
872
864
  tableFieldLookup[field] = {
873
865
  value: nextSortedRows,
@@ -878,20 +870,20 @@ var formatTableFieldPositions = function formatTableFieldPositions(fieldPosition
878
870
  calculatedValue: calculatedValue
879
871
  };
880
872
  }
873
+
881
874
  /**
882
875
  * Ensure each table field has a properly formatted properties
883
876
  */
884
-
885
-
886
877
  nextFieldPosition.value = tableFieldLookup[field].value;
887
878
  nextFieldPosition.rowOrder = tableFieldLookup[field].rowOrder;
888
879
  nextFieldPosition.tableColumns = tableFieldLookup[field].tableColumns;
889
880
  nextFieldPosition.tableColumnOrder = tableFieldLookup[field].tableColumnOrder;
881
+
890
882
  /**
891
883
  * Add calculated value lookup. For instance, { A1: '', B1: '', C1: '', ... }
892
884
  */
893
-
894
885
  nextFieldPosition.calculatedValue = tableFieldLookup[field].calculatedValue;
886
+
895
887
  /**
896
888
  * Individual Table Cell vs Entire Table
897
889
  *
@@ -912,10 +904,8 @@ var formatTableFieldPositions = function formatTableFieldPositions(fieldPosition
912
904
  * If tableRowIndex associated with a cell doesn't have a table row associated
913
905
  * with it (ie rows[rowIndex] is undefined) it means that particular row is deleted
914
906
  */
915
-
916
907
  if (tableFieldLookup[field] && column && typeof rowIndex === 'number') {
917
908
  var _tableFieldLookup$fie;
918
-
919
909
  /**
920
910
  * What is the difference between rowIndex and targetRowIndex?
921
911
  *
@@ -932,33 +922,33 @@ var formatTableFieldPositions = function formatTableFieldPositions(fieldPosition
932
922
  var targetRowIndex = tableFieldLookup[field].value.findIndex(function (row) {
933
923
  return (row === null || row === void 0 ? void 0 : row._id) === targetRowId;
934
924
  });
925
+
935
926
  /**
936
927
  * Add proper rowId to the field position so that it can be used
937
928
  * inside the element for change handlers;
938
929
  */
939
-
940
930
  nextFieldPosition.rowId = targetRowId;
931
+
941
932
  /**
942
933
  * If rows[rowIndex] is undefined, it means the row that was present
943
934
  * at the particular rowIndex was deleted
944
935
  */
945
-
946
936
  nextFieldPosition.cellValue = ((_tableFieldLookup$fie = tableFieldLookup[field].value[targetRowIndex]) === null || _tableFieldLookup$fie === void 0 ? void 0 : _tableFieldLookup$fie.cells[column]) || '';
937
+
947
938
  /**
948
939
  * Skip any individual field position that is associated with a deleted column.
949
940
  * targetColumn will appear as undefined if a column is deleted
950
941
  */
951
-
952
942
  if (targetColumn) {
953
943
  nextFieldPosition.calculatedCellValue = tableFieldLookup[field].calculatedValue["".concat(targetColumn.operand).concat(targetRowIndex + 1)];
954
944
  nextFieldPosition.columnType = targetColumn.type;
955
945
  nextFieldPosition.options = targetColumn.options;
956
946
  nextFieldPosition.columnIdentifier = targetColumn.identifier;
947
+
957
948
  /**
958
949
  * IMPORTANT NOTE: We only add individual table cell field position into
959
950
  * the fieldPosition list if the associated column is not deleted.
960
951
  */
961
-
962
952
  nextFieldPositions.push(nextFieldPosition);
963
953
  }
964
954
  } else {
@@ -972,9 +962,7 @@ var formatTableFieldPositions = function formatTableFieldPositions(fieldPosition
972
962
  });
973
963
  return nextFieldPositions;
974
964
  };
975
-
976
- exports.formatTableFieldPositions = formatTableFieldPositions;
977
- var _default = {
965
+ var _default = exports["default"] = {
978
966
  getDefaultJoyDocPage: getDefaultJoyDocPage,
979
967
  getDefaultJoyDocFile: getDefaultJoyDocFile,
980
968
  getDefaultJoyDoc: getDefaultJoyDoc,
@@ -993,5 +981,4 @@ var _default = {
993
981
  generateMobilePage: generateMobilePage,
994
982
  generateMobilePageFieldPositions: generateMobilePageFieldPositions,
995
983
  formatTableFieldPositions: formatTableFieldPositions
996
- };
997
- exports["default"] = _default;
984
+ };