@builttocreate/engine-utils 2.8.0 → 2.9.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,77 +1,49 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof3 = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
- exports.validFormulaString = exports.spreadOperandRange = exports.sortRows = exports.sortColumns = exports.resolveOperandValue = exports.hasOperandRange = exports.hasCircularOperandReference = exports.handleTableCellChange = exports.handleMoveTableRowUp = exports.handleMoveTableRowDown = exports.handleMoveColumnRight = exports.handleMoveColumnLeft = exports.handleInsertTableRow = exports.handleDuplicateTableRow = exports.handleCreateTableRow = exports.getTemplateColumnOperandLookup = exports.getTargetColumnWithOperand = exports.getTableRowLookupWithPopulatedDropdownCells = exports.getTableFieldRowOrder = exports.getTableFieldLookupKey = exports.getRows = exports.getRowOrder = exports.getRowMap = exports.getRowIndexLookup = exports.getInputGroupRowLookupWithPopulatedDropdownCells = exports.getIndexesFromTableCellOperand = exports.getFormulaResult = exports.getFilteredRowOrder = exports.getDefaultTextColumn = exports.getDefaultRow = exports.getDefaultImageColumn = exports.getDefaultDropdownColumn = exports.getDefaultColumnOption = exports.getColumns = exports.getColumnOrder = exports.getColumnOperand = exports.getCleanedRowOrder = exports.getCleanedColumnOrder = exports.getCellOperand = exports.generateTableLookupForRows = exports.generateTableLookup = exports.generateTableFieldLookups = exports.generateRowTableLookup = exports.generateInputGroupFields = exports["default"] = void 0;
11
-
8
+ exports.validFormulaString = exports.spreadOperandRange = exports.sortRows = exports.sortColumns = exports.resolveOperandValue = exports.hasOperandRange = exports.hasCircularOperandReference = exports.handleTableCellChange = exports.handleMoveTableRowUp = exports.handleMoveTableRowDown = exports.handleMoveColumnRight = exports.handleMoveColumnLeft = exports.handleInsertTableRow = exports.handleDuplicateTableRow = exports.handleCreateTableRow = exports.getTemplateColumnOperandLookup = exports.getTargetColumnWithOperand = exports.getTableRowLookupWithPopulatedDropdownCells = exports.getTableFieldRowOrder = exports.getTableFieldLookupKey = exports.getRows = exports.getRowOrder = exports.getRowMap = exports.getRowIndexLookup = exports.getInputGroupRowLookupWithPopulatedDropdownCells = exports.getIndexesFromTableCellOperand = exports.getFormulaResult = exports.getFilteredRowOrder = exports.getDefaultTextColumn = exports.getDefaultRow = exports.getDefaultNumberColumn = exports.getDefaultImageColumn = exports.getDefaultDropdownColumn = exports.getDefaultColumnOption = exports.getColumns = exports.getColumnOrder = exports.getColumnOperand = exports.getCleanedRowOrder = exports.getCleanedColumnOrder = exports.getCellOperand = exports.generateTableLookupForRows = exports.generateTableLookup = exports.generateTableFieldLookups = exports.generateRowTableLookup = exports.generateInputGroupFields = exports["default"] = void 0;
12
9
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
-
14
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
11
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
17
-
18
12
  var _hotFormulaParser = require("@builttocreate/hot-formula-parser");
19
-
20
13
  var _generateObjectId = _interopRequireDefault(require("./generateObjectId"));
21
-
22
14
  var _Table = _interopRequireWildcard(require("./constants/Table"));
23
-
24
15
  var _FieldTypes = _interopRequireDefault(require("./constants/FieldTypes"));
25
-
26
16
  var _FieldTableColumnTypes = _interopRequireDefault(require("./constants/FieldTableColumnTypes"));
27
-
28
17
  var _FieldTableCustomColumnIds = _interopRequireDefault(require("./constants/FieldTableCustomColumnIds"));
29
-
30
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
-
32
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
-
34
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
35
-
36
- 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; }
37
-
18
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
19
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) { if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } } return n["default"] = e, t && t.set(e, n), n; }
20
+ 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; }
21
+ 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; }
38
22
  var parser = new _hotFormulaParser.Parser();
39
-
40
- var getTableFieldLookupKey = function getTableFieldLookupKey(fieldId, rowIndex, columnId) {
23
+ var getTableFieldLookupKey = exports.getTableFieldLookupKey = function getTableFieldLookupKey(fieldId, rowIndex, columnId) {
41
24
  return "".concat(fieldId, "-").concat(rowIndex, "-").concat(columnId);
42
25
  };
43
-
44
- exports.getTableFieldLookupKey = getTableFieldLookupKey;
45
-
46
- var getDefaultRow = function getDefaultRow() {
26
+ var getDefaultRow = exports.getDefaultRow = function getDefaultRow() {
47
27
  return {
48
28
  _id: (0, _generateObjectId["default"])(),
49
29
  deleted: false,
50
30
  cells: {}
51
31
  };
52
32
  };
53
-
54
- exports.getDefaultRow = getDefaultRow;
55
-
56
- var getRows = function getRows(rows) {
33
+ var getRows = exports.getRows = function getRows(rows) {
57
34
  var parsedRows = rows;
58
-
59
35
  if (typeof parsedRows === 'string') {
60
36
  parsedRows = JSON.parse(parsedRows);
61
37
  }
62
-
63
38
  return parsedRows ? parsedRows.filter(function (row) {
64
39
  return !row.deleted;
65
40
  }) : [];
66
41
  };
42
+
67
43
  /**
68
44
  * Sort rows based on rowOrder
69
45
  */
70
-
71
-
72
- exports.getRows = getRows;
73
-
74
- var sortRows = function sortRows(rows, rowOrder) {
46
+ var sortRows = exports.sortRows = function sortRows(rows, rowOrder) {
75
47
  if (!rowOrder) return rows;
76
48
  var rowLookup = {};
77
49
  rows.forEach(function (row) {
@@ -83,6 +55,7 @@ var sortRows = function sortRows(rows, rowOrder) {
83
55
  });
84
56
  return sortedRows;
85
57
  };
58
+
86
59
  /**
87
60
  * Filter table row order by cell values
88
61
  *
@@ -90,41 +63,35 @@ var sortRows = function sortRows(rows, rowOrder) {
90
63
  * @param {Array} rows
91
64
  * @param {Object} filters //{ colId: value, colId: value, ....}
92
65
  */
93
-
94
-
95
- exports.sortRows = sortRows;
96
-
97
- var getFilteredRowOrder = function getFilteredRowOrder(rowOrder, rows, filters) {
66
+ var getFilteredRowOrder = exports.getFilteredRowOrder = function getFilteredRowOrder(rowOrder, rows, filters) {
98
67
  var filteredColumnIds = filters ? Object.keys(filters) : [];
99
68
  var validRowOrder = rowOrder;
100
-
101
69
  if (!validRowOrder) {
102
70
  var validRows = rows ? getRows(rows) : [];
103
71
  validRowOrder = validRows.map(function (row) {
104
72
  return row._id;
105
73
  });
106
74
  }
75
+
107
76
  /**
108
77
  * Remove any duplicate rowIds. We have had instances where
109
78
  * users encounter duplicate rowIds in the rowOrder.
110
79
  * See: https://github.com/zionlabs/Issues/issues/1589
111
80
  */
112
-
113
-
114
81
  var cleanedValidRowOrder = [];
115
82
  validRowOrder.forEach(function (rowId) {
116
83
  if (cleanedValidRowOrder.indexOf(rowId) === -1) cleanedValidRowOrder.push(rowId);
117
84
  });
118
-
119
85
  if (filteredColumnIds.length > 0) {
120
86
  var matchedRows = {};
121
87
  rows.forEach(function (row) {
122
88
  if (row.deleted) return;
123
89
  var rowMatched = true;
124
90
  filteredColumnIds.forEach(function (columnId) {
125
- var filter = filters[columnId] ? filters[columnId].toLowerCase() : '';
126
- var value = row.cells && row.cells[columnId] ? row.cells[columnId].toLowerCase() : '';
127
- if (filter && (!value || value.indexOf(filter) === -1)) rowMatched = false;
91
+ var filter = filters[columnId] && typeof filters[columnId] === 'string' ? filters[columnId].toLowerCase() : filters[columnId] && typeof filters[columnId] === 'number' ? filters[columnId] : '';
92
+ var value = row.cells && row.cells[columnId] && typeof row.cells[columnId] === 'string' ? row.cells[columnId].toLowerCase() : row.cells && row.cells[columnId] && typeof row.cells[columnId] === 'number' ? row.cells[columnId] : '';
93
+ if (filter && typeof value === 'string' && (!value || value.indexOf(filter) === -1)) rowMatched = false;
94
+ if (filter && typeof value === 'number' && (!value || value !== filter)) rowMatched = false;
128
95
  });
129
96
  if (rowMatched) matchedRows[row._id] = true;
130
97
  });
@@ -135,6 +102,7 @@ var getFilteredRowOrder = function getFilteredRowOrder(rowOrder, rows, filters)
135
102
  return cleanedValidRowOrder;
136
103
  }
137
104
  };
105
+
138
106
  /**
139
107
  * Create a table row map for simple value lookup
140
108
  *
@@ -148,11 +116,7 @@ var getFilteredRowOrder = function getFilteredRowOrder(rowOrder, rows, filters)
148
116
  * @param {Array} rows
149
117
  * @return {Object}
150
118
  */
151
-
152
-
153
- exports.getFilteredRowOrder = getFilteredRowOrder;
154
-
155
- var getRowMap = function getRowMap() {
119
+ var getRowMap = exports.getRowMap = function getRowMap() {
156
120
  var rows = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
157
121
  var items = getRows(rows);
158
122
  var rowMap = {};
@@ -161,6 +125,7 @@ var getRowMap = function getRowMap() {
161
125
  });
162
126
  return rowMap;
163
127
  };
128
+
164
129
  /**
165
130
  * Get row order
166
131
  *
@@ -169,15 +134,12 @@ var getRowMap = function getRowMap() {
169
134
  *
170
135
  * @return {Array}
171
136
  */
172
-
173
-
174
- exports.getRowMap = getRowMap;
175
-
176
- var getRowOrder = function getRowOrder(rowOrder, rows) {
137
+ var getRowOrder = exports.getRowOrder = function getRowOrder(rowOrder, rows) {
177
138
  return rowOrder || getRows(rows).map(function (row) {
178
139
  return row._id;
179
140
  });
180
141
  };
142
+
181
143
  /**
182
144
  * Get row order for table field. If there isn't a row order set in the
183
145
  * fieldSettings then it will default to the normal row array Ids.
@@ -188,16 +150,13 @@ var getRowOrder = function getRowOrder(rowOrder, rows) {
188
150
  *
189
151
  * @return {Array}
190
152
  */
191
-
192
-
193
- exports.getRowOrder = getRowOrder;
194
-
195
- var getTableFieldRowOrder = function getTableFieldRowOrder(fieldId, fieldSettings, rows) {
153
+ var getTableFieldRowOrder = exports.getTableFieldRowOrder = function getTableFieldRowOrder(fieldId, fieldSettings, rows) {
196
154
  var filteredRows = rows ? getRows(rows) : [];
197
155
  return fieldSettings && fieldSettings[fieldId] && fieldSettings[fieldId].rowOrder ? (0, _toConsumableArray2["default"])(fieldSettings[fieldId].rowOrder) : filteredRows.map(function (row) {
198
156
  return row._id;
199
157
  });
200
158
  };
159
+
201
160
  /**
202
161
  * This method removes the rowIds of the deleted rows (or) any duplicate rowIds
203
162
  * from the rowOrder there by returning a cleaned rowOrder
@@ -206,16 +165,12 @@ var getTableFieldRowOrder = function getTableFieldRowOrder(fieldId, fieldSetting
206
165
  *
207
166
  * @returns {Array}
208
167
  **/
209
-
210
-
211
- exports.getTableFieldRowOrder = getTableFieldRowOrder;
212
-
213
- var getCleanedRowOrder = function getCleanedRowOrder(rowOrder, rows) {
168
+ var getCleanedRowOrder = exports.getCleanedRowOrder = function getCleanedRowOrder(rowOrder, rows) {
214
169
  var nextRowOrder = [];
170
+
215
171
  /**
216
172
  * Step 1: Handle generating or retrieving proper row order.
217
173
  */
218
-
219
174
  if (rowOrder && rowOrder.length > 0) {
220
175
  nextRowOrder = rowOrder;
221
176
  } else if (rows && rows.length > 0) {
@@ -223,11 +178,10 @@ var getCleanedRowOrder = function getCleanedRowOrder(rowOrder, rows) {
223
178
  if (!row.deleted) nextRowOrder.push(row._id);
224
179
  });
225
180
  }
181
+
226
182
  /**
227
183
  * Step 2: Remove row Ids from rowOrder for rows that no longer exist or have been deleted
228
184
  */
229
-
230
-
231
185
  var rowLookup = {};
232
186
  rows.forEach(function (row) {
233
187
  return rowLookup[row._id] = row && !row.deleted;
@@ -235,27 +189,24 @@ var getCleanedRowOrder = function getCleanedRowOrder(rowOrder, rows) {
235
189
  nextRowOrder = nextRowOrder.filter(function (rowId) {
236
190
  return rowLookup[rowId];
237
191
  });
192
+
238
193
  /**
239
194
  * Step 3: Remove any duplicate row Id references in the row order.
240
195
  */
241
-
242
196
  var filteredNextRowOrder = [];
243
197
  nextRowOrder.forEach(function (rowId) {
244
198
  if (rowId && filteredNextRowOrder.indexOf(rowId) === -1) filteredNextRowOrder.push(rowId);
245
199
  });
246
200
  return filteredNextRowOrder;
247
201
  };
202
+
248
203
  /**
249
204
  * Handle Move Column Left
250
205
  *
251
206
  * @param {Number} columnIndex
252
207
  * @param {Func} callback
253
208
  */
254
-
255
-
256
- exports.getCleanedRowOrder = getCleanedRowOrder;
257
-
258
- var handleMoveColumnLeft = function handleMoveColumnLeft(columnIndex, callback) {
209
+ var handleMoveColumnLeft = exports.handleMoveColumnLeft = function handleMoveColumnLeft(columnIndex, callback) {
259
210
  //If first index then ignore
260
211
  if (columnIndex === 0) return;
261
212
  var targetIndex = columnIndex - 1;
@@ -263,6 +214,7 @@ var handleMoveColumnLeft = function handleMoveColumnLeft(columnIndex, callback)
263
214
  targetIndex: targetIndex
264
215
  });
265
216
  };
217
+
266
218
  /**
267
219
  * Handle Move Column Right
268
220
  *
@@ -270,11 +222,7 @@ var handleMoveColumnLeft = function handleMoveColumnLeft(columnIndex, callback)
270
222
  * @param {Number} columnIndex
271
223
  * @param {Func} callback
272
224
  */
273
-
274
-
275
- exports.handleMoveColumnLeft = handleMoveColumnLeft;
276
-
277
- var handleMoveColumnRight = function handleMoveColumnRight(columns, columnIndex, callback) {
225
+ var handleMoveColumnRight = exports.handleMoveColumnRight = function handleMoveColumnRight(columns, columnIndex, callback) {
278
226
  //If last column index then ignore
279
227
  if (columnIndex >= columns.length - 1) return;
280
228
  var targetIndex = columnIndex + 1;
@@ -282,23 +230,21 @@ var handleMoveColumnRight = function handleMoveColumnRight(columns, columnIndex,
282
230
  targetIndex: targetIndex
283
231
  });
284
232
  };
233
+
285
234
  /**
286
235
  * Get default column option
287
236
  *
288
237
  * @param {String} value
289
238
  * @return {Object}
290
239
  */
291
-
292
-
293
- exports.handleMoveColumnRight = handleMoveColumnRight;
294
-
295
- var getDefaultColumnOption = function getDefaultColumnOption(value) {
240
+ var getDefaultColumnOption = exports.getDefaultColumnOption = function getDefaultColumnOption(value) {
296
241
  return {
297
242
  _id: (0, _generateObjectId["default"])(),
298
243
  value: value || 'Option',
299
244
  deleted: false
300
245
  };
301
246
  };
247
+
302
248
  /**
303
249
  * Get default text column for table field
304
250
  *
@@ -306,11 +252,7 @@ var getDefaultColumnOption = function getDefaultColumnOption(value) {
306
252
  *
307
253
  * @return {Object}
308
254
  */
309
-
310
-
311
- exports.getDefaultColumnOption = getDefaultColumnOption;
312
-
313
- var getDefaultTextColumn = function getDefaultTextColumn() {
255
+ var getDefaultTextColumn = exports.getDefaultTextColumn = function getDefaultTextColumn() {
314
256
  var defaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
315
257
  return _objectSpread({
316
258
  _id: (0, _generateObjectId["default"])(),
@@ -320,18 +262,33 @@ var getDefaultTextColumn = function getDefaultTextColumn() {
320
262
  deleted: false
321
263
  }, defaults);
322
264
  };
265
+
323
266
  /**
324
- * Get default dropdown column for table field
267
+ * Get default Number column for table field
325
268
  *
326
269
  * @param {Object} defaults //Overwrite any values with this defaults object
327
270
  *
328
271
  * @return {Object}
329
272
  */
273
+ var getDefaultNumberColumn = exports.getDefaultNumberColumn = function getDefaultNumberColumn() {
274
+ var defaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
275
+ return _objectSpread({
276
+ _id: (0, _generateObjectId["default"])(),
277
+ type: _FieldTableColumnTypes["default"].number,
278
+ title: 'Number Column',
279
+ deleted: false,
280
+ width: 200
281
+ }, defaults);
282
+ };
330
283
 
331
-
332
- exports.getDefaultTextColumn = getDefaultTextColumn;
333
-
334
- var getDefaultImageColumn = function getDefaultImageColumn() {
284
+ /**
285
+ * Get default dropdown column for table field
286
+ *
287
+ * @param {Object} defaults //Overwrite any values with this defaults object
288
+ *
289
+ * @return {Object}
290
+ */
291
+ var getDefaultImageColumn = exports.getDefaultImageColumn = function getDefaultImageColumn() {
335
292
  var defaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
336
293
  return _objectSpread({
337
294
  _id: (0, _generateObjectId["default"])(),
@@ -343,6 +300,7 @@ var getDefaultImageColumn = function getDefaultImageColumn() {
343
300
  maxImageHeight: 120
344
301
  }, defaults);
345
302
  };
303
+
346
304
  /**
347
305
  * Get default dropdown column for table field
348
306
  *
@@ -350,11 +308,7 @@ var getDefaultImageColumn = function getDefaultImageColumn() {
350
308
  *
351
309
  * @return {Object}
352
310
  */
353
-
354
-
355
- exports.getDefaultImageColumn = getDefaultImageColumn;
356
-
357
- var getDefaultDropdownColumn = function getDefaultDropdownColumn() {
311
+ var getDefaultDropdownColumn = exports.getDefaultDropdownColumn = function getDefaultDropdownColumn() {
358
312
  var defaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
359
313
  var options = defaults.options || [getDefaultColumnOption('Yes'), getDefaultColumnOption('No'), getDefaultColumnOption('N/A')];
360
314
  return _objectSpread({
@@ -369,6 +323,7 @@ var getDefaultDropdownColumn = function getDefaultDropdownColumn() {
369
323
  })
370
324
  }, defaults);
371
325
  };
326
+
372
327
  /**
373
328
  * Get column order
374
329
  *
@@ -377,15 +332,12 @@ var getDefaultDropdownColumn = function getDefaultDropdownColumn() {
377
332
  *
378
333
  * @return {Array}
379
334
  */
380
-
381
-
382
- exports.getDefaultDropdownColumn = getDefaultDropdownColumn;
383
-
384
- var getColumnOrder = function getColumnOrder(columnOrder, columns) {
335
+ var getColumnOrder = exports.getColumnOrder = function getColumnOrder(columnOrder, columns) {
385
336
  return columnOrder || getColumns(columns).map(function (column) {
386
337
  return column._id;
387
338
  });
388
339
  };
340
+
389
341
  /**
390
342
  * This method removes the columnIds of the deleted columns (or) any duplicate columnIds
391
343
  * from the tableColumnOrder there by returning a cleaned tableColumnOrder
@@ -395,16 +347,12 @@ var getColumnOrder = function getColumnOrder(columnOrder, columns) {
395
347
  *
396
348
  * @returns {Array}
397
349
  **/
398
-
399
-
400
- exports.getColumnOrder = getColumnOrder;
401
-
402
- var getCleanedColumnOrder = function getCleanedColumnOrder(columnOrder, columns) {
350
+ var getCleanedColumnOrder = exports.getCleanedColumnOrder = function getCleanedColumnOrder(columnOrder, columns) {
403
351
  var nextColumnOrder = [];
352
+
404
353
  /**
405
354
  * Step 1: Handle generating or retrieving proper column order.
406
355
  */
407
-
408
356
  if (columnOrder && columnOrder.length > 0) {
409
357
  nextColumnOrder = columnOrder;
410
358
  } else if (columns && columns.length > 0) {
@@ -412,11 +360,10 @@ var getCleanedColumnOrder = function getCleanedColumnOrder(columnOrder, columns)
412
360
  if (!column.deleted) nextColumnOrder.push(column._id);
413
361
  });
414
362
  }
363
+
415
364
  /**
416
365
  * Step 2: Remove column Ids from columnOrder for columns that no longer exist or have been deleted
417
366
  */
418
-
419
-
420
367
  var columnLookup = {};
421
368
  columns.forEach(function (column) {
422
369
  return columnLookup[column._id] = column && !column.deleted;
@@ -424,47 +371,38 @@ var getCleanedColumnOrder = function getCleanedColumnOrder(columnOrder, columns)
424
371
  nextColumnOrder = nextColumnOrder.filter(function (columnId) {
425
372
  return columnLookup[columnId];
426
373
  });
374
+
427
375
  /**
428
376
  * Step 3: Remove any duplicate column Id references in the column order.
429
377
  */
430
-
431
378
  var filteredNextColumnOrder = [];
432
379
  nextColumnOrder.forEach(function (columnId) {
433
380
  if (columnId && filteredNextColumnOrder.indexOf(columnId) === -1) filteredNextColumnOrder.push(columnId);
434
381
  });
435
382
  return filteredNextColumnOrder;
436
383
  };
384
+
437
385
  /**
438
386
  * Get table columns with added operands. Operands are the A, B, C, etc.
439
387
  */
440
-
441
-
442
- exports.getCleanedColumnOrder = getCleanedColumnOrder;
443
-
444
- var getColumns = function getColumns(columns) {
388
+ var getColumns = exports.getColumns = function getColumns(columns) {
445
389
  var parsedColumns = columns;
446
-
447
390
  if (typeof parsedColumns === 'string') {
448
391
  parsedColumns = JSON.parse(parsedColumns);
449
392
  }
450
-
451
393
  return !parsedColumns ? [] : parsedColumns.filter(function (column) {
452
394
  return !column.deleted;
453
395
  }).map(function (column, i) {
454
396
  var nextColumn = _objectSpread({}, column);
455
-
456
397
  nextColumn.operand = getColumnOperand(i);
457
398
  return nextColumn;
458
399
  });
459
400
  };
401
+
460
402
  /**
461
403
  * Sort columns based on columnOrder
462
404
  */
463
-
464
-
465
- exports.getColumns = getColumns;
466
-
467
- var sortColumns = function sortColumns(columns, columnOrder) {
405
+ var sortColumns = exports.sortColumns = function sortColumns(columns, columnOrder) {
468
406
  if (!columnOrder) return columns;
469
407
  var columnLookup = {};
470
408
  columns.forEach(function (col) {
@@ -476,20 +414,15 @@ var sortColumns = function sortColumns(columns, columnOrder) {
476
414
  });
477
415
  return sortedColumns;
478
416
  };
417
+
479
418
  /**
480
419
  * Get the targetColumn with added operand. Operands are A, B ,C etc...
481
420
  */
482
-
483
-
484
- exports.sortColumns = sortColumns;
485
-
486
- var getTargetColumnWithOperand = function getTargetColumnWithOperand(columnOrder, columns, columnId) {
421
+ var getTargetColumnWithOperand = exports.getTargetColumnWithOperand = function getTargetColumnWithOperand(columnOrder, columns, columnId) {
487
422
  var targetColumn = columns.find(function (col) {
488
423
  return col._id === columnId;
489
424
  });
490
-
491
425
  var nextTargetColumn = _objectSpread({}, targetColumn);
492
-
493
426
  var targetColumnIndex = columnOrder.findIndex(function (item) {
494
427
  return item === targetColumn._id;
495
428
  });
@@ -497,18 +430,16 @@ var getTargetColumnWithOperand = function getTargetColumnWithOperand(columnOrder
497
430
  nextTargetColumn.operand = targetColumnOperand;
498
431
  return nextTargetColumn;
499
432
  };
433
+
500
434
  /**
501
435
  * Return letter for a column index. For intance: A, B, C
502
436
  *
503
437
  * Used to create the table lookup operands: A1, B12, etc.
504
438
  */
505
-
506
-
507
- exports.getTargetColumnWithOperand = getTargetColumnWithOperand;
508
-
509
- var getColumnOperand = function getColumnOperand(index) {
439
+ var getColumnOperand = exports.getColumnOperand = function getColumnOperand(index) {
510
440
  return String.fromCharCode(65 + index);
511
441
  };
442
+
512
443
  /**
513
444
  * Return rowIndex and columnIndex for cellOperand
514
445
  *
@@ -517,11 +448,7 @@ var getColumnOperand = function getColumnOperand(index) {
517
448
  * @param {String} cellOperand
518
449
  * @returns {Object}
519
450
  */
520
-
521
-
522
- exports.getColumnOperand = getColumnOperand;
523
-
524
- var getIndexesFromTableCellOperand = function getIndexesFromTableCellOperand(cellOperand) {
451
+ var getIndexesFromTableCellOperand = exports.getIndexesFromTableCellOperand = function getIndexesFromTableCellOperand(cellOperand) {
525
452
  var letter = cellOperand.match(/[A-Z]*/gi).find(function (value) {
526
453
  return value;
527
454
  });
@@ -530,7 +457,6 @@ var getIndexesFromTableCellOperand = function getIndexesFromTableCellOperand(cel
530
457
  });
531
458
  return {
532
459
  columnIndex: _Table.operandLetterIndexes[letter],
533
-
534
460
  /**
535
461
  * Cell operands start at an index of 1. So to get the true
536
462
  * index for the rowIndex we need to substract 1 so we can
@@ -539,6 +465,7 @@ var getIndexesFromTableCellOperand = function getIndexesFromTableCellOperand(cel
539
465
  rowIndex: rowIndex - 1
540
466
  };
541
467
  };
468
+
542
469
  /**
543
470
  * Get operand lookup for all table/inputGroup fields in a template.
544
471
  *
@@ -547,11 +474,7 @@ var getIndexesFromTableCellOperand = function getIndexesFromTableCellOperand(cel
547
474
  * ....
548
475
  * }
549
476
  */
550
-
551
-
552
- exports.getIndexesFromTableCellOperand = getIndexesFromTableCellOperand;
553
-
554
- var getTemplateColumnOperandLookup = function getTemplateColumnOperandLookup(template) {
477
+ var getTemplateColumnOperandLookup = exports.getTemplateColumnOperandLookup = function getTemplateColumnOperandLookup(template) {
555
478
  var operandLookup = {};
556
479
  template.fields.forEach(function (field) {
557
480
  if (field.type !== _FieldTypes["default"].table && field.type !== _FieldTypes["default"].inputGroup) return;
@@ -563,19 +486,17 @@ var getTemplateColumnOperandLookup = function getTemplateColumnOperandLookup(tem
563
486
  });
564
487
  return operandLookup;
565
488
  };
489
+
566
490
  /**
567
491
  * Return operand for cell. For intance: A1, B2, C1
568
492
  *
569
493
  * @param {String} columnOperand //A, B, C, etc.
570
494
  * @param {Number} rowIndex
571
495
  */
572
-
573
-
574
- exports.getTemplateColumnOperandLookup = getTemplateColumnOperandLookup;
575
-
576
- var getCellOperand = function getCellOperand(columnOperand, rowIndex) {
496
+ var getCellOperand = exports.getCellOperand = function getCellOperand(columnOperand, rowIndex) {
577
497
  return "".concat(columnOperand).concat(rowIndex);
578
498
  };
499
+
579
500
  /**
580
501
  * Generate table lookup by rowIndex and column operand
581
502
  *
@@ -594,11 +515,7 @@ var getCellOperand = function getCellOperand(columnOperand, rowIndex) {
594
515
  * @return {Object}
595
516
 
596
517
  */
597
-
598
-
599
- exports.getCellOperand = getCellOperand;
600
-
601
- var generateRowTableLookup = function generateRowTableLookup(rows, columns, tableLookup) {
518
+ var generateRowTableLookup = exports.generateRowTableLookup = function generateRowTableLookup(rows, columns, tableLookup) {
602
519
  if (!rows || !columns || !tableLookup) return {};
603
520
  var rowTableLookup = {};
604
521
  rows.forEach(function (row, rowIndex) {
@@ -611,6 +528,7 @@ var generateRowTableLookup = function generateRowTableLookup(rows, columns, tabl
611
528
  });
612
529
  return rowTableLookup;
613
530
  };
531
+
614
532
  /**
615
533
  * Generate table lookups for each table field in template. It takes
616
534
  * all table & inputGroup fields and generates a table lookup object for them.
@@ -633,11 +551,7 @@ var generateRowTableLookup = function generateRowTableLookup(rows, columns, tabl
633
551
  * ...
634
552
  * }
635
553
  */
636
-
637
-
638
- exports.generateRowTableLookup = generateRowTableLookup;
639
-
640
- var generateTableFieldLookups = function generateTableFieldLookups(doc, template) {
554
+ var generateTableFieldLookups = exports.generateTableFieldLookups = function generateTableFieldLookups(doc, template) {
641
555
  var tableFields = template.fields.filter(function (field) {
642
556
  return (field.type === _FieldTypes["default"].table || field.type === _FieldTypes["default"].inputGroup) && !field.deleted;
643
557
  });
@@ -656,6 +570,7 @@ var generateTableFieldLookups = function generateTableFieldLookups(doc, template
656
570
  });
657
571
  return tableLookups;
658
572
  };
573
+
659
574
  /**
660
575
  * Organize the table lookup on a row by row basis
661
576
  * @param {Array} rows
@@ -676,11 +591,7 @@ var generateTableFieldLookups = function generateTableFieldLookups(doc, template
676
591
  * }
677
592
  *
678
593
  */
679
-
680
-
681
- exports.generateTableFieldLookups = generateTableFieldLookups;
682
-
683
- var generateTableLookupForRows = function generateTableLookupForRows(rows, columns) {
594
+ var generateTableLookupForRows = exports.generateTableLookupForRows = function generateTableLookupForRows(rows, columns) {
684
595
  var tableLookup = generateTableLookup(rows, columns);
685
596
  var rowLookup = {};
686
597
  Object.keys(tableLookup).forEach(function (key) {
@@ -692,6 +603,7 @@ var generateTableLookupForRows = function generateTableLookupForRows(rows, colum
692
603
  });
693
604
  return rowLookup;
694
605
  };
606
+
695
607
  /**
696
608
  * Generate Lookup Operand Lookup Table for Table Data. Supports converting
697
609
  * formula cells to the calculated value.
@@ -710,11 +622,7 @@ var generateTableLookupForRows = function generateTableLookupForRows(rows, colum
710
622
  * B2: 4,
711
623
  * }
712
624
  */
713
-
714
-
715
- exports.generateTableLookupForRows = generateTableLookupForRows;
716
-
717
- var generateTableLookup = function generateTableLookup(rows, columns) {
625
+ var generateTableLookup = exports.generateTableLookup = function generateTableLookup(rows, columns) {
718
626
  var tableLookup = {};
719
627
  var columnOptionsLookup = {};
720
628
  var tableColumns = [];
@@ -725,10 +633,8 @@ var generateTableLookup = function generateTableLookup(rows, columns) {
725
633
  });
726
634
  filteredColumns.forEach(function (column, i) {
727
635
  var nextColumn = _objectSpread({}, column);
728
-
729
636
  nextColumn.operand = String.fromCharCode(65 + i);
730
637
  tableColumns.push(nextColumn);
731
-
732
638
  if (column.type === _FieldTableColumnTypes["default"].dropdown) {
733
639
  columnOptionsLookup[column._id] = {};
734
640
  column.options.forEach(function (option) {
@@ -751,7 +657,6 @@ var generateTableLookup = function generateTableLookup(rows, columns) {
751
657
  if (cellRawValue && typeof cellRawValue === 'number') cellValue = cellRawValue.toString();
752
658
  var formulaCell = cellValue !== undefined && cellValue.charAt(0) === '=';
753
659
  var containsOperands = cellValue !== undefined && cellValue.match(/[A-Z]([0-9]{1,10})/gi);
754
-
755
660
  if (cellValue && column.type === _FieldTableColumnTypes["default"].dropdown) {
756
661
  tableLookup[cellKey] = columnOptionsLookup[column._id][cellValue];
757
662
  } else if ((cellValue || cellRawValue) && column.type === _FieldTableColumnTypes["default"].image) {
@@ -772,10 +677,7 @@ var generateTableLookup = function generateTableLookup(rows, columns) {
772
677
  });
773
678
  return tableLookup;
774
679
  };
775
-
776
- exports.generateTableLookup = generateTableLookup;
777
-
778
- var getFormulaResult = function getFormulaResult(sourceOperand, formula, tableLookup) {
680
+ var getFormulaResult = exports.getFormulaResult = function getFormulaResult(sourceOperand, formula, tableLookup) {
779
681
  formula = spreadOperandRange(formula);
780
682
  var invalidFormulaError = validFormulaString(sourceOperand, formula);
781
683
  if (invalidFormulaError) return tableLookup[sourceOperand] = invalidFormulaError;
@@ -785,15 +687,14 @@ var getFormulaResult = function getFormulaResult(sourceOperand, formula, tableLo
785
687
  var operandValue = resolveOperandValue(sourceOperand, operand, tableLookup);
786
688
  formula = formula.replace(operand, operandValue);
787
689
  });
690
+
788
691
  /**
789
692
  * Add leading zeros to decimal numbers. hot-formula-parser throws an
790
693
  * error if we try to parse non leading decimal numbers. For instace,
791
694
  * a non leading decimal number is: .7 .001 etc. We convert these
792
695
  * values to 0.7 & 0.001
793
696
  */
794
-
795
697
  var noLeadingZeroDecimalMatches = formula.match(/\D\./);
796
-
797
698
  if (noLeadingZeroDecimalMatches && noLeadingZeroDecimalMatches.length > 0) {
798
699
  noLeadingZeroDecimalMatches.forEach(function (val) {
799
700
  var splitVals = val.split('');
@@ -802,13 +703,13 @@ var getFormulaResult = function getFormulaResult(sourceOperand, formula, tableLo
802
703
  formula = formula.replace(val, newValue);
803
704
  });
804
705
  }
805
-
806
706
  formula = formula.replace('=', '');
807
707
  var parsedValue = parser.parse(formula);
808
708
  if (parsedValue.result) parsedValue.result = Math.round(100 * parsedValue.result) / 100;
809
709
  tableLookup[sourceOperand] = parsedValue.result ? parsedValue.result.toString() : parsedValue.error;
810
710
  return parsedValue;
811
711
  };
712
+
812
713
  /**
813
714
  * Resolve operand value
814
715
  * An operand is A1, B1, etc.
@@ -817,77 +718,61 @@ var getFormulaResult = function getFormulaResult(sourceOperand, formula, tableLo
817
718
  * @param targetOperand //The cell you are trying to retrieve a value from
818
719
  * @param tableLookup //The lookup of values contained in the table;
819
720
  */
820
-
821
-
822
- exports.getFormulaResult = getFormulaResult;
823
-
824
- var resolveOperandValue = function resolveOperandValue(sourceOperand, targetOperand, tableLookup) {
721
+ var resolveOperandValue = exports.resolveOperandValue = function resolveOperandValue(sourceOperand, targetOperand, tableLookup) {
825
722
  var targetValue = tableLookup[targetOperand] && typeof tableLookup[targetOperand] === 'string' ? tableLookup[targetOperand].trim() : tableLookup[targetOperand];
826
723
  /**
827
724
  * 1. If tableLookup doesn't have a value (or) if the targetValue
828
725
  * appears to be an object (image column cell values) return 0.
829
726
  */
727
+ if (!targetValue || (0, _typeof2["default"])(targetValue) === 'object') return 0;
830
728
 
831
- if (!targetValue || (0, _typeof2["default"])(targetValue) === 'object') return 0; // 2. If tableLookup is already a number return the number value
729
+ // 2. If tableLookup is already a number return the number value
730
+ if (typeof targetValue === 'number') return targetValue;
832
731
 
833
- if (typeof targetValue === 'number') return targetValue; // 3. If targetCell has circular reference return invalid.
732
+ // 3. If targetCell has circular reference return invalid.
834
733
  //
835
734
  // A circular reference can occur when C1 reference B1 and B1 references C1.
836
735
  // It creates and infinite circular loop of trying to resovle a value
837
736
  // because they both depend on eachother.
737
+ if (sourceOperand && hasCircularOperandReference(targetValue, sourceOperand) || targetOperand && hasCircularOperandReference(targetValue, targetOperand)) return '* INVALID - Circular Reference';
838
738
 
839
- if (sourceOperand && hasCircularOperandReference(targetValue, sourceOperand) || targetOperand && hasCircularOperandReference(targetValue, targetOperand)) return '* INVALID - Circular Reference'; // 4. If targetCell has a formula value
840
-
739
+ // 4. If targetCell has a formula value
841
740
  if (targetValue !== undefined && targetValue.charAt(0) === '=') {
842
741
  var result = getFormulaResult(sourceOperand, targetValue, tableLookup);
843
742
  return result.result || result.error;
844
- } // 5. If targetCell has a normal value or an already resolved
845
- // formula cell then just return the cell value
846
-
743
+ }
847
744
 
745
+ // 5. If targetCell has a normal value or an already resolved
746
+ // formula cell then just return the cell value
848
747
  if (targetValue) return targetValue;
849
748
  };
850
-
851
- exports.resolveOperandValue = resolveOperandValue;
852
-
853
- var hasCircularOperandReference = function hasCircularOperandReference(targetValue, lookupOperand) {
749
+ var hasCircularOperandReference = exports.hasCircularOperandReference = function hasCircularOperandReference(targetValue, lookupOperand) {
854
750
  var regExp = new RegExp(lookupOperand, 'gi');
855
751
  var foundOperandReferences = targetValue.match(regExp);
856
752
  return !!(foundOperandReferences && foundOperandReferences.length > 0);
857
753
  };
858
-
859
- exports.hasCircularOperandReference = hasCircularOperandReference;
860
-
861
- var hasOperandRange = function hasOperandRange(targetValue) {
754
+ var hasOperandRange = exports.hasOperandRange = function hasOperandRange(targetValue) {
862
755
  return /[A-Z]([0-9]{1,10}):[A-Z]([0-9]{1,10})/gi.test(targetValue);
863
756
  };
757
+
864
758
  /**
865
759
  * Check for any invalid patterns inside of the formula string
866
760
  */
867
-
868
-
869
- exports.hasOperandRange = hasOperandRange;
870
-
871
- var validFormulaString = function validFormulaString(sourceOperand, formula) {
761
+ var validFormulaString = exports.validFormulaString = function validFormulaString(sourceOperand, formula) {
872
762
  if (sourceOperand && hasCircularOperandReference(formula, sourceOperand)) {
873
763
  return '*INVALID - Circular Reference';
874
764
  }
875
-
876
765
  var lowercaseOperands = formula.match(/[a-z]/g);
877
-
878
766
  if (lowercaseOperands && lowercaseOperands.length > 0) {
879
767
  return '*INVALID - Lowercase Letters Not Supported';
880
768
  }
881
769
  };
770
+
882
771
  /**
883
772
  * Spread the operand range into individual operands.
884
773
  * For instance: SUM(A1:A4) turns into SUM(A1, A2, A3, A4);
885
774
  */
886
-
887
-
888
- exports.validFormulaString = validFormulaString;
889
-
890
- var spreadOperandRange = function spreadOperandRange(targetValue) {
775
+ var spreadOperandRange = exports.spreadOperandRange = function spreadOperandRange(targetValue) {
891
776
  if (!hasOperandRange(targetValue)) return targetValue;
892
777
  var operandRangeMatches = targetValue.match(/[A-Z]([0-9]{1,10}):[A-Z]([0-9]{1,10})/gi);
893
778
  var operandRange = operandRangeMatches[0];
@@ -897,46 +782,43 @@ var spreadOperandRange = function spreadOperandRange(targetValue) {
897
782
  var operandAIndex = operandA.match(/[0-9]+/gi) ? operandA.match(/[0-9]+/gi)[0] : null;
898
783
  var operandB = operands[1];
899
784
  var operandBLetter = operandB.match(/[A-Z]+/gi) ? operandB.match(/[A-Z]+/gi)[0] : null;
900
- var operandBIndex = operandB.match(/[0-9]+/gi) ? operandB.match(/[0-9]+/gi)[0] : null; // If any values are missing return orignal targetValue
785
+ var operandBIndex = operandB.match(/[0-9]+/gi) ? operandB.match(/[0-9]+/gi)[0] : null;
901
786
 
902
- if (!operandALetter || !operandAIndex || !operandBLetter || !operandBIndex) return targetValue; // Handle row range.
903
- // For instance: C1:C8
787
+ // If any values are missing return orignal targetValue
788
+ if (!operandALetter || !operandAIndex || !operandBLetter || !operandBIndex) return targetValue;
904
789
 
790
+ // Handle row range.
791
+ // For instance: C1:C8
905
792
  if (operandALetter === operandBLetter) {
906
793
  var columnOperand = operandALetter;
907
794
  var startIndex = parseInt(operandAIndex, 10);
908
795
  var endIndex = parseInt(operandBIndex, 10);
909
796
  var operandRangeValues = operandA;
910
797
  var i = startIndex + 1;
911
-
912
798
  while (i <= endIndex) {
913
799
  operandRangeValues += ",".concat(columnOperand).concat(i);
914
800
  i++;
915
801
  }
916
-
917
802
  targetValue = targetValue.replace(/[A-Z](\d{1,10}):[A-Z](\d{1,10})/gi, operandRangeValues);
918
- } // Handle column range
803
+ }
804
+
805
+ // Handle column range
919
806
  // For instance, A1:D1
920
807
  else {
921
808
  var _startIndex = parseInt(_Table["default"].operandLetters.indexOf(operandALetter.toUpperCase()), 10);
922
-
923
809
  var _endIndex = parseInt(_Table["default"].operandLetters.indexOf(operandBLetter.toUpperCase()), 10);
924
-
925
810
  var _operandRangeValues = operandA;
926
-
927
811
  var _i = _startIndex + 1;
928
-
929
812
  while (_i <= _endIndex) {
930
813
  var nextOperandLetter = _Table["default"].operandLetters[_i];
931
814
  _operandRangeValues += ",".concat(nextOperandLetter).concat(operandAIndex);
932
815
  _i++;
933
816
  }
934
-
935
817
  targetValue = targetValue.replace(/[A-Z](\d{1,10}):[A-Z](\d{1,10})/gi, _operandRangeValues);
936
818
  }
937
-
938
819
  return targetValue;
939
820
  };
821
+
940
822
  /**
941
823
  * Primarily used for Mobile
942
824
  *
@@ -948,11 +830,7 @@ var spreadOperandRange = function spreadOperandRange(targetValue) {
948
830
  * @param {Array} rows
949
831
  *
950
832
  */
951
-
952
-
953
- exports.spreadOperandRange = spreadOperandRange;
954
-
955
- var generateInputGroupFields = function generateInputGroupFields(field, columns) {
833
+ var generateInputGroupFields = exports.generateInputGroupFields = function generateInputGroupFields(field, columns) {
956
834
  var rows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [getDefaultRow()];
957
835
  var fieldSettings = arguments.length > 3 ? arguments[3] : undefined;
958
836
  var activity = arguments.length > 4 ? arguments[4] : undefined;
@@ -971,7 +849,6 @@ var generateInputGroupFields = function generateInputGroupFields(field, columns)
971
849
  var rowOrder = getTableFieldRowOrder(field._id, fieldSettings, tableRows);
972
850
  var sortedTableRows = sortRows(tableRows, rowOrder);
973
851
  var cellActivityLookup = {};
974
-
975
852
  if (activity && activity.length > 0) {
976
853
  activity.forEach(function (act) {
977
854
  var rowId = act.document.row;
@@ -981,14 +858,13 @@ var generateInputGroupFields = function generateInputGroupFields(field, columns)
981
858
  cellActivityLookup[cellKey] += 1;
982
859
  });
983
860
  }
984
-
985
861
  sortedTableRows.forEach(function (row, rowIndex) {
986
862
  var firstRowIndex = rowIndex === 0;
987
863
  var lastRowIndex = rowIndex === sortedTableRows.length - 1;
864
+
988
865
  /**
989
866
  * Step 1: Add InputGroup Row Header
990
867
  */
991
-
992
868
  tableReferences.push({
993
869
  uniqueId: "".concat(field._id).concat(row._id),
994
870
  _id: field._id,
@@ -1001,10 +877,10 @@ var generateInputGroupFields = function generateInputGroupFields(field, columns)
1001
877
  firstIndex: rowIndex === 0,
1002
878
  lastIndex: false
1003
879
  });
880
+
1004
881
  /**
1005
882
  * Step 2: Add Input Group Row Cells
1006
883
  */
1007
-
1008
884
  tableColumns.forEach(function (column, columnIndex) {
1009
885
  var lastColumnIndex = columnIndex === tableColumns.length - 1;
1010
886
  var value = row && row.cells ? row.cells[column._id] : '';
@@ -1031,6 +907,7 @@ var generateInputGroupFields = function generateInputGroupFields(field, columns)
1031
907
  });
1032
908
  return tableReferences;
1033
909
  };
910
+
1034
911
  /**
1035
912
  * Populate table rows with values
1036
913
  * - Dropdown cells will have chosen values
@@ -1044,10 +921,7 @@ var generateInputGroupFields = function generateInputGroupFields(field, columns)
1044
921
  * @returns
1045
922
  */
1046
923
 
1047
-
1048
- exports.generateInputGroupFields = generateInputGroupFields;
1049
-
1050
- var getTableRowLookupWithPopulatedDropdownCells = function getTableRowLookupWithPopulatedDropdownCells(columns, rows) {
924
+ var getTableRowLookupWithPopulatedDropdownCells = exports.getTableRowLookupWithPopulatedDropdownCells = function getTableRowLookupWithPopulatedDropdownCells(columns, rows) {
1051
925
  var rowsLookup = {};
1052
926
  var tableLookup = generateTableLookup(rows, columns);
1053
927
  var validRows = getRows(rows);
@@ -1056,11 +930,9 @@ var getTableRowLookupWithPopulatedDropdownCells = function getTableRowLookupWith
1056
930
  var nextRow = _objectSpread(_objectSpread({}, row), {}, {
1057
931
  cells: _objectSpread({}, row.cells)
1058
932
  });
1059
-
1060
933
  validColumns.forEach(function (column) {
1061
934
  var cellOperand = getCellOperand(column.operand, rowIndex + 1);
1062
935
  var value = tableLookup[cellOperand];
1063
-
1064
936
  if (value && column.type === _FieldTableColumnTypes["default"].dropdown) {
1065
937
  nextRow.cells[column._id] = column.optionsLookup[value] ? column.optionsLookup[value].value : value;
1066
938
  } else {
@@ -1071,6 +943,7 @@ var getTableRowLookupWithPopulatedDropdownCells = function getTableRowLookupWith
1071
943
  });
1072
944
  return rowsLookup;
1073
945
  };
946
+
1074
947
  /**
1075
948
  * Populate inputGroup dropdown questions with chosen value
1076
949
  *
@@ -1082,20 +955,15 @@ var getTableRowLookupWithPopulatedDropdownCells = function getTableRowLookupWith
1082
955
  * @returns
1083
956
  */
1084
957
 
1085
-
1086
- exports.getTableRowLookupWithPopulatedDropdownCells = getTableRowLookupWithPopulatedDropdownCells;
1087
-
1088
- var getInputGroupRowLookupWithPopulatedDropdownCells = function getInputGroupRowLookupWithPopulatedDropdownCells(columns, rows) {
958
+ var getInputGroupRowLookupWithPopulatedDropdownCells = exports.getInputGroupRowLookupWithPopulatedDropdownCells = function getInputGroupRowLookupWithPopulatedDropdownCells(columns, rows) {
1089
959
  var rowsLookup = {};
1090
960
  var validRows = typeof rows === 'string' ? JSON.parse(rows) : rows;
1091
961
  validRows.forEach(function (row) {
1092
962
  var nextRow = _objectSpread(_objectSpread({}, row), {}, {
1093
963
  cells: _objectSpread({}, row.cells)
1094
964
  });
1095
-
1096
965
  columns.forEach(function (column) {
1097
966
  var optionId = nextRow.cells[column._id];
1098
-
1099
967
  if (optionId && column.type === _FieldTableColumnTypes["default"].dropdown) {
1100
968
  nextRow.cells[column._id] = column.optionsLookup[optionId] ? column.optionsLookup[optionId].value : optionId;
1101
969
  }
@@ -1104,6 +972,7 @@ var getInputGroupRowLookupWithPopulatedDropdownCells = function getInputGroupRow
1104
972
  });
1105
973
  return rowsLookup;
1106
974
  };
975
+
1107
976
  /**
1108
977
  * Generate row index lookup:
1109
978
  * @param {*} fieldId
@@ -1111,11 +980,7 @@ var getInputGroupRowLookupWithPopulatedDropdownCells = function getInputGroupRow
1111
980
  * @param {*} rows
1112
981
  * @returns
1113
982
  */
1114
-
1115
-
1116
- exports.getInputGroupRowLookupWithPopulatedDropdownCells = getInputGroupRowLookupWithPopulatedDropdownCells;
1117
-
1118
- var getRowIndexLookup = function getRowIndexLookup(fieldId, fieldSettings, rows) {
983
+ var getRowIndexLookup = exports.getRowIndexLookup = function getRowIndexLookup(fieldId, fieldSettings, rows) {
1119
984
  var rowOrder = getTableFieldRowOrder(fieldId, fieldSettings, rows);
1120
985
  var rowIndexLookup = {};
1121
986
  rowOrder.forEach(function (rowId, index) {
@@ -1123,6 +988,7 @@ var getRowIndexLookup = function getRowIndexLookup(fieldId, fieldSettings, rows)
1123
988
  });
1124
989
  return rowIndexLookup;
1125
990
  };
991
+
1126
992
  /**
1127
993
  * Handle Table Cell Change
1128
994
  *
@@ -1132,17 +998,14 @@ var getRowIndexLookup = function getRowIndexLookup(fieldId, fieldSettings, rows)
1132
998
  * @param {String} value
1133
999
  * @param {Func} callback
1134
1000
  */
1135
-
1136
-
1137
- exports.getRowIndexLookup = getRowIndexLookup;
1138
-
1139
- var handleTableCellChange = function handleTableCellChange(rows, rowId, columnId, val, callback) {
1001
+ var handleTableCellChange = exports.handleTableCellChange = function handleTableCellChange(rows, rowId, columnId, val, callback) {
1140
1002
  var targetRowIndex = rows.findIndex(function (row) {
1141
1003
  return row._id === rowId;
1142
1004
  });
1143
1005
  var row = rows[targetRowIndex];
1144
- var cells = row ? row.cells : {}; //Only save data if value has changed
1006
+ var cells = row ? row.cells : {};
1145
1007
 
1008
+ //Only save data if value has changed
1146
1009
  if (cells[columnId] !== val && callback) {
1147
1010
  callback({
1148
1011
  targetRowIndex: targetRowIndex,
@@ -1153,39 +1016,34 @@ var handleTableCellChange = function handleTableCellChange(rows, rowId, columnId
1153
1016
  });
1154
1017
  }
1155
1018
  };
1019
+
1156
1020
  /**
1157
1021
  * Handle Insert Table Row
1158
1022
  *
1159
1023
  * @param {Number} rowIndex
1160
1024
  * @param {Func} callback
1161
1025
  */
1162
-
1163
-
1164
- exports.handleTableCellChange = handleTableCellChange;
1165
-
1166
- var handleInsertTableRow = function handleInsertTableRow(rowIndex, callback) {
1026
+ var handleInsertTableRow = exports.handleInsertTableRow = function handleInsertTableRow(rowIndex, callback) {
1167
1027
  if (callback) callback({
1168
1028
  targetRowIndex: rowIndex + 1,
1169
1029
  row: getDefaultRow()
1170
1030
  });
1171
1031
  };
1032
+
1172
1033
  /**
1173
1034
  * Handle Create New Table Row
1174
1035
  *
1175
1036
  * @param {Array} rows //List of current table rows
1176
1037
  * @param {Func} callback
1177
1038
  */
1178
-
1179
-
1180
- exports.handleInsertTableRow = handleInsertTableRow;
1181
-
1182
- var handleCreateTableRow = function handleCreateTableRow(rows, callback) {
1039
+ var handleCreateTableRow = exports.handleCreateTableRow = function handleCreateTableRow(rows, callback) {
1183
1040
  var targetRowIndex = rows.length;
1184
1041
  if (callback) callback({
1185
1042
  targetRowIndex: targetRowIndex,
1186
1043
  row: getDefaultRow()
1187
1044
  });
1188
1045
  };
1046
+
1189
1047
  /**
1190
1048
  * Handle Duplicate Table Row
1191
1049
  *
@@ -1194,11 +1052,7 @@ var handleCreateTableRow = function handleCreateTableRow(rows, callback) {
1194
1052
  * @param {Number} rowIndex
1195
1053
  * @param {Func} callback
1196
1054
  */
1197
-
1198
-
1199
- exports.handleCreateTableRow = handleCreateTableRow;
1200
-
1201
- var handleDuplicateTableRow = function handleDuplicateTableRow(rows, rowId, rowIndex, callback) {
1055
+ var handleDuplicateTableRow = exports.handleDuplicateTableRow = function handleDuplicateTableRow(rows, rowId, rowIndex, callback) {
1202
1056
  var duplicateRow = rows.find(function (row) {
1203
1057
  return row._id === rowId;
1204
1058
  });
@@ -1210,17 +1064,14 @@ var handleDuplicateTableRow = function handleDuplicateTableRow(rows, rowId, rowI
1210
1064
  row: newRow
1211
1065
  });
1212
1066
  };
1067
+
1213
1068
  /**
1214
1069
  * Handle Move Table Row Up
1215
1070
  *
1216
1071
  * @param {Number} rowIndex
1217
1072
  * @param {Func} callback
1218
1073
  */
1219
-
1220
-
1221
- exports.handleDuplicateTableRow = handleDuplicateTableRow;
1222
-
1223
- var handleMoveTableRowUp = function handleMoveTableRowUp(rowIndex, callback) {
1074
+ var handleMoveTableRowUp = exports.handleMoveTableRowUp = function handleMoveTableRowUp(rowIndex, callback) {
1224
1075
  //If first row then ignore
1225
1076
  if (rowIndex === 0) return;
1226
1077
  var targetRowIndex = rowIndex - 1;
@@ -1228,6 +1079,7 @@ var handleMoveTableRowUp = function handleMoveTableRowUp(rowIndex, callback) {
1228
1079
  targetRowIndex: targetRowIndex
1229
1080
  });
1230
1081
  };
1082
+
1231
1083
  /**
1232
1084
  * Handle Move Table Row Down
1233
1085
  *
@@ -1235,11 +1087,7 @@ var handleMoveTableRowUp = function handleMoveTableRowUp(rowIndex, callback) {
1235
1087
  * @param {Number} rowIndex
1236
1088
  * @param {Func} callback
1237
1089
  */
1238
-
1239
-
1240
- exports.handleMoveTableRowUp = handleMoveTableRowUp;
1241
-
1242
- var handleMoveTableRowDown = function handleMoveTableRowDown(rows, rowIndex, callback) {
1090
+ var handleMoveTableRowDown = exports.handleMoveTableRowDown = function handleMoveTableRowDown(rows, rowIndex, callback) {
1243
1091
  //If last row then ignore
1244
1092
  if (rowIndex >= rows.length - 1) return;
1245
1093
  var targetRowIndex = rowIndex + 1;
@@ -1247,9 +1095,7 @@ var handleMoveTableRowDown = function handleMoveTableRowDown(rows, rowIndex, cal
1247
1095
  targetRowIndex: targetRowIndex
1248
1096
  });
1249
1097
  };
1250
-
1251
- exports.handleMoveTableRowDown = handleMoveTableRowDown;
1252
- var _default = {
1098
+ var _default = exports["default"] = {
1253
1099
  generateTableLookup: generateTableLookup,
1254
1100
  generateTableLookupForRows: generateTableLookupForRows,
1255
1101
  generateInputGroupFields: generateInputGroupFields,
@@ -1291,5 +1137,4 @@ var _default = {
1291
1137
  handleMoveTableRowDown: handleMoveTableRowDown,
1292
1138
  FieldTableColumnTypes: _FieldTableColumnTypes["default"],
1293
1139
  FieldTableCustomColumnIds: _FieldTableCustomColumnIds["default"]
1294
- };
1295
- exports["default"] = _default;
1140
+ };