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