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

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.getCleanedTableFieldRowOrder = 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,91 @@ 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 getCleanedTableFieldRowOrder = function getCleanedTableFieldRowOrder(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
+ };
248
+
249
+ exports.getCleanedTableFieldRowOrder = getCleanedTableFieldRowOrder;
250
+
251
+ var getCleanedRowOrder = function getCleanedRowOrder(rowOrder, rows) {
252
+ var nextRowOrder = [];
253
+ /**
254
+ * Step 1: Handle generating or retrieving proper row order.
255
+ */
256
+
257
+ if (rowOrder && rowOrder.length > 0) {
258
+ nextRowOrder = rowOrder;
259
+ } else if (rows && rows.length > 0) {
260
+ rows.forEach(function (row) {
261
+ if (!row.deleted) nextRowOrder.push(row._id);
262
+ });
263
+ }
264
+ /**
265
+ * Step 2: Remove row Ids from rowOrder for rows that no longer exist or have been deleted
266
+ */
267
+
268
+
269
+ var rowLookup = {};
270
+ rows.forEach(function (row) {
271
+ return rowLookup[row._id] = row && !row.deleted;
272
+ });
273
+ nextRowOrder = nextRowOrder.filter(function (rowId) {
274
+ return rowLookup[rowId];
275
+ });
276
+ /**
277
+ * Step 3: Remove any duplicate row Id references in the row order.
278
+ */
279
+
280
+ var filteredNextRowOrder = [];
281
+ nextRowOrder.forEach(function (rowId) {
282
+ if (filteredNextRowOrder.indexOf(rowId) === -1) filteredNextRowOrder.push(rowId);
283
+ });
284
+ return filteredNextRowOrder;
285
+ };
201
286
  /**
202
287
  * Handle Move Column Left
203
288
  *
@@ -206,7 +291,7 @@ var getTableFieldRowOrder = function getTableFieldRowOrder(fieldId, fieldSetting
206
291
  */
207
292
 
208
293
 
209
- exports.getTableFieldRowOrder = getTableFieldRowOrder;
294
+ exports.getCleanedRowOrder = getCleanedRowOrder;
210
295
 
211
296
  var handleMoveColumnLeft = function handleMoveColumnLeft(columnIndex, callback) {
212
297
  //If first index then ignore
@@ -1161,9 +1246,12 @@ var _default = {
1161
1246
  getCellOperand: getCellOperand,
1162
1247
  getIndexesFromTableCellOperand: getIndexesFromTableCellOperand,
1163
1248
  getRowOrder: getRowOrder,
1249
+ getCleanedTableFieldRowOrder: getCleanedTableFieldRowOrder,
1250
+ getTableFieldRowOrder: getTableFieldRowOrder,
1251
+ getFilteredRowOrder: getFilteredRowOrder,
1252
+ getCleanedRowOrder: getCleanedRowOrder,
1164
1253
  getRows: getRows,
1165
1254
  sortRows: sortRows,
1166
- getFilteredRowOrder: getFilteredRowOrder,
1167
1255
  getDefaultRow: getDefaultRow,
1168
1256
  getRowMap: getRowMap,
1169
1257
  getDefaultColumnOption: getDefaultColumnOption,
@@ -1179,7 +1267,6 @@ var _default = {
1179
1267
  hasOperandRange: hasOperandRange,
1180
1268
  spreadOperandRange: spreadOperandRange,
1181
1269
  getTableFieldLookupKey: getTableFieldLookupKey,
1182
- getTableFieldRowOrder: getTableFieldRowOrder,
1183
1270
  getTableRowLookupWithPopulatedDropdownCells: getTableRowLookupWithPopulatedDropdownCells,
1184
1271
  getInputGroupRowLookupWithPopulatedDropdownCells: getInputGroupRowLookupWithPopulatedDropdownCells,
1185
1272
  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.4",
4
4
  "description": "Utility library for common logic shared across web and mobile",
5
5
  "main": "dist/index.js",
6
6
  "files": [