@builttocreate/engine-utils 2.8.0 → 2.9.0

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