@builttocreate/engine-utils 2.5.0-beta.3 → 2.5.0-beta.5

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.
@@ -7,7 +7,7 @@ var _typeof3 = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
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.getCellOperand = exports.generateTableLookupForRows = exports.generateTableLookup = exports.generateTableFieldLookups = exports.generateRowTableLookup = exports.generateInputGroupFields = exports["default"] = void 0;
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.getCellOperand = exports.generateTableLookupForRows = exports.generateTableLookup = exports.generateTableFieldLookups = exports.generateRowTableLookup = exports.generateInputGroupFields = exports["default"] = void 0;
11
11
 
12
12
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
13
 
@@ -198,6 +198,53 @@ var getTableFieldRowOrder = function getTableFieldRowOrder(fieldId, fieldSetting
198
198
  return row._id;
199
199
  });
200
200
  };
201
+ /**
202
+ * This method returns a cleanedRowOrder by removing any invalid rowIds of deleted rows
203
+ * or duplicate rowIds from the rowOrder that is passed in via input
204
+ * @param {*} rowOrder
205
+ * @param {*} rows
206
+ *
207
+ * @returns {Array}
208
+ **/
209
+
210
+
211
+ exports.getTableFieldRowOrder = getTableFieldRowOrder;
212
+
213
+ var getCleanedRowOrder = function getCleanedRowOrder(rowOrder, rows) {
214
+ var nextRowOrder = [];
215
+ /**
216
+ * Step 1: Handle generating or retrieving proper row order.
217
+ */
218
+
219
+ if (rowOrder && rowOrder.length > 0) {
220
+ nextRowOrder = rowOrder;
221
+ } else if (rows && rows.length > 0) {
222
+ rows.forEach(function (row) {
223
+ if (!row.deleted) nextRowOrder.push(row._id);
224
+ });
225
+ }
226
+ /**
227
+ * Step 2: Remove row Ids from rowOrder for rows that no longer exist or have been deleted
228
+ */
229
+
230
+
231
+ var rowLookup = {};
232
+ rows.forEach(function (row) {
233
+ return rowLookup[row._id] = row && !row.deleted;
234
+ });
235
+ nextRowOrder = nextRowOrder.filter(function (rowId) {
236
+ return rowLookup[rowId];
237
+ });
238
+ /**
239
+ * Step 3: Remove any duplicate row Id references in the row order.
240
+ */
241
+
242
+ var filteredNextRowOrder = [];
243
+ nextRowOrder.forEach(function (rowId) {
244
+ if (filteredNextRowOrder.indexOf(rowId) === -1) filteredNextRowOrder.push(rowId);
245
+ });
246
+ return filteredNextRowOrder;
247
+ };
201
248
  /**
202
249
  * Handle Move Column Left
203
250
  *
@@ -206,7 +253,7 @@ var getTableFieldRowOrder = function getTableFieldRowOrder(fieldId, fieldSetting
206
253
  */
207
254
 
208
255
 
209
- exports.getTableFieldRowOrder = getTableFieldRowOrder;
256
+ exports.getCleanedRowOrder = getCleanedRowOrder;
210
257
 
211
258
  var handleMoveColumnLeft = function handleMoveColumnLeft(columnIndex, callback) {
212
259
  //If first index then ignore
@@ -1161,9 +1208,12 @@ var _default = {
1161
1208
  getCellOperand: getCellOperand,
1162
1209
  getIndexesFromTableCellOperand: getIndexesFromTableCellOperand,
1163
1210
  getRowOrder: getRowOrder,
1211
+ getCleanedTableFieldRowOrder: getCleanedTableFieldRowOrder,
1212
+ getTableFieldRowOrder: getTableFieldRowOrder,
1213
+ getFilteredRowOrder: getFilteredRowOrder,
1214
+ getCleanedRowOrder: getCleanedRowOrder,
1164
1215
  getRows: getRows,
1165
1216
  sortRows: sortRows,
1166
- getFilteredRowOrder: getFilteredRowOrder,
1167
1217
  getDefaultRow: getDefaultRow,
1168
1218
  getRowMap: getRowMap,
1169
1219
  getDefaultColumnOption: getDefaultColumnOption,
@@ -1179,7 +1229,6 @@ var _default = {
1179
1229
  hasOperandRange: hasOperandRange,
1180
1230
  spreadOperandRange: spreadOperandRange,
1181
1231
  getTableFieldLookupKey: getTableFieldLookupKey,
1182
- getTableFieldRowOrder: getTableFieldRowOrder,
1183
1232
  getTableRowLookupWithPopulatedDropdownCells: getTableRowLookupWithPopulatedDropdownCells,
1184
1233
  getInputGroupRowLookupWithPopulatedDropdownCells: getInputGroupRowLookupWithPopulatedDropdownCells,
1185
1234
  getRowIndexLookup: getRowIndexLookup,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builttocreate/engine-utils",
3
- "version": "2.5.0-beta.3",
3
+ "version": "2.5.0-beta.5",
4
4
  "description": "Utility library for common logic shared across web and mobile",
5
5
  "main": "dist/index.js",
6
6
  "files": [