@builttocreate/engine-utils 2.5.0-beta.9 → 2.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -19,6 +19,10 @@ var _FieldPresentationModes = _interopRequireDefault(require("./constants/FieldP
19
19
 
20
20
  var _DocumentTypes = _interopRequireDefault(require("./constants/DocumentTypes"));
21
21
 
22
+ var _FieldTypes = _interopRequireDefault(require("./constants/FieldTypes"));
23
+
24
+ var _tableHelper = require("./tableHelper");
25
+
22
26
  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; }
23
27
 
24
28
  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; }
@@ -98,6 +102,7 @@ var getDefaultJoyDoc = function getDefaultJoyDoc() {
98
102
  * 1. Valid file inside the document.
99
103
  * 2. Valid page inside document file.
100
104
  * 3. All _id's (page, file, page, fieldPosition, field) are in a valid format
105
+ * 4. Row order of table field is free from duplicate/deletedRow Ids
101
106
  *
102
107
  * @param {Object} doc
103
108
  * @returns {Object}
@@ -153,6 +158,24 @@ var getCleanedJoyDoc = function getCleanedJoyDoc(doc) {
153
158
  } else {
154
159
  nextDoc.files = [getDefaultJoyDocFile()];
155
160
  }
161
+ /**
162
+ * Logic below is used to clean the table field rowOrder by removing the
163
+ * deletedRowIds / duplicateRowIds from the rowOrder.
164
+ **/
165
+
166
+
167
+ if (nextDoc.fields && nextDoc.fields.length > 0) {
168
+ nextDoc.fields = nextDoc.fields.map(function (field) {
169
+ var nextField = _objectSpread({}, field);
170
+
171
+ if (field.type === _FieldTypes["default"].table) {
172
+ var cleanedRoworder = (0, _tableHelper.getCleanedRowOrder)(field.rowOrder, field.value);
173
+ nextField.rowOrder = cleanedRoworder;
174
+ }
175
+
176
+ return nextField;
177
+ });
178
+ }
156
179
 
157
180
  return nextDoc;
158
181
  };
@@ -199,7 +199,7 @@ var getTableFieldRowOrder = function getTableFieldRowOrder(fieldId, fieldSetting
199
199
  });
200
200
  };
201
201
  /**
202
- * This methods removes the rowIds of the deleted rows (or) any duplicate rowIds
202
+ * This method removes the rowIds of the deleted rows (or) any duplicate rowIds
203
203
  * from the rowOrder there by returning a cleaned rowOrder
204
204
  * @param {*} rowOrder
205
205
  * @param {*} rows
@@ -241,7 +241,7 @@ var getCleanedRowOrder = function getCleanedRowOrder(rowOrder, rows) {
241
241
 
242
242
  var filteredNextRowOrder = [];
243
243
  nextRowOrder.forEach(function (rowId) {
244
- if (filteredNextRowOrder.indexOf(rowId) === -1) filteredNextRowOrder.push(rowId);
244
+ if (rowId && filteredNextRowOrder.indexOf(rowId) === -1) filteredNextRowOrder.push(rowId);
245
245
  });
246
246
  return filteredNextRowOrder;
247
247
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builttocreate/engine-utils",
3
- "version": "2.5.0-beta.9",
3
+ "version": "2.5.1",
4
4
  "description": "Utility library for common logic shared across web and mobile",
5
5
  "main": "dist/index.js",
6
6
  "files": [