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