@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.
- 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 +190 -203
- 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,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
|
-
|
|
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
|
-
|
|
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
|
-
});
|
|
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
|
-
|
|
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
|
-
|
|
673
|
-
|
|
674
|
-
|
|
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
|
-
});
|
|
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
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
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
|
+
};
|