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